You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			73 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
			
		
		
	
	
			73 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
using System;
 | 
						|
using System.Linq;
 | 
						|
using System.Text.RegularExpressions;
 | 
						|
 | 
						|
class PasswortChecker
 | 
						|
{
 | 
						|
    public int isGutesPasswort(string passwort)
 | 
						|
    {
 | 
						|
        int zeichenAnzahl = 0;
 | 
						|
        int buchstabenAnzahl = 0;
 | 
						|
        int ziffernAnzahl = 0;
 | 
						|
        int grossbuchstabenAnzahl = 0;
 | 
						|
        int kleinbuchstabenAnzahl = 0;
 | 
						|
        int sonderzeichenAnzahl = 0;
 | 
						|
        int zifferInnerhalb = 0;
 | 
						|
        int sonderzeichenInnerhalb = 0;
 | 
						|
 | 
						|
        int punkteZaehler = 0;
 | 
						|
 | 
						|
        string[] passwortBestandteile = Regex.Split(passwort, @"");
 | 
						|
        passwortBestandteile = passwortBestandteile.Where(val => val != "").ToArray();
 | 
						|
 | 
						|
        zeichenAnzahl = passwortBestandteile.Length;
 | 
						|
 | 
						|
        int passwortBestandteileIndex = 0;
 | 
						|
        foreach (string passwortBestandteil in passwortBestandteile)
 | 
						|
        {
 | 
						|
            if (Regex.IsMatch(passwortBestandteil, "[a-zA-Z]")) buchstabenAnzahl++;
 | 
						|
            if (Regex.IsMatch(passwortBestandteil, "[A-Z]")) grossbuchstabenAnzahl++;
 | 
						|
            if (Regex.IsMatch(passwortBestandteil, "[a-z]")) kleinbuchstabenAnzahl++;
 | 
						|
            if (Regex.IsMatch(passwortBestandteil, "[0-9]")) ziffernAnzahl++;
 | 
						|
            if (!Regex.IsMatch(passwortBestandteil, "[A-Za-z0-9öäüÄÖÜßáàâéèêíìîóòôúùû]")) sonderzeichenAnzahl++;
 | 
						|
 | 
						|
            if (passwortBestandteileIndex != 0 && passwortBestandteileIndex != zeichenAnzahl)
 | 
						|
            {
 | 
						|
                if (!Regex.IsMatch(passwortBestandteil, "[A-Za-z0-9öäüÄÖÜßáàâéèêíìîóòôúùû]")) sonderzeichenInnerhalb++;
 | 
						|
                if (Regex.IsMatch(passwortBestandteil, "[0-9]")) zifferInnerhalb++;
 | 
						|
            }
 | 
						|
 | 
						|
            passwortBestandteileIndex++;
 | 
						|
        }
 | 
						|
 | 
						|
        if (zeichenAnzahl >= 12) punkteZaehler++; else Console.WriteLine("\r\nPunktverlust -1 wegen zu weniger Zeichen - Es sollen min. 12 sein und sind nur: " + Convert.ToString(zeichenAnzahl));
 | 
						|
        if (buchstabenAnzahl >= 2) punkteZaehler++; else Console.WriteLine("Punktverlust -1 wegen zu weniger Buchstaben");
 | 
						|
        if (grossbuchstabenAnzahl >= 2) punkteZaehler++; else Console.WriteLine("Punktverlust -1 wegen zu weniger Großbuchstaben");
 | 
						|
        if (ziffernAnzahl >= 2) punkteZaehler++; else Console.WriteLine("Punktverlust -1 wegen zu weniger Ziffern");
 | 
						|
        if (kleinbuchstabenAnzahl >= 1) punkteZaehler++; else Console.WriteLine("Punktverlust -1 wegen zu weniger Kleinbuchstaben");
 | 
						|
        if (sonderzeichenAnzahl >= 2) punkteZaehler++; else Console.WriteLine("Punktverlust -1 wegen zu weniger Sonderzeichen");
 | 
						|
        if (sonderzeichenInnerhalb >= 1) punkteZaehler++; else Console.WriteLine("Punktverlust -1 wegen fehlendem oder falscher Position eines Sonderzeichens");
 | 
						|
        if (zifferInnerhalb >= 1) punkteZaehler++; else Console.WriteLine("Punktverlust -1 wegen fehlender oder falscher Position einer Ziffer");
 | 
						|
 | 
						|
        return punkteZaehler;
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
class hauptProgramm
 | 
						|
{
 | 
						|
 | 
						|
    static void Main(string[] args)
 | 
						|
    {
 | 
						|
        Console.WriteLine("Bitte geben Sie das Passwort ein, das getestet werden soll: ");
 | 
						|
        string passwort = Console.ReadLine();
 | 
						|
 | 
						|
        PasswortChecker pwc = new PasswortChecker();
 | 
						|
        int ergebnis = pwc.isGutesPasswort(passwort);
 | 
						|
 | 
						|
        Console.WriteLine("Das Passwort erreicht " + Convert.ToString(ergebnis) + " von 8 erreichbaren Punkten");
 | 
						|
 | 
						|
        // Konsolenfenster offen halten
 | 
						|
        Console.WriteLine("Druecken Sie zum Bennden eine beliebige Taste");
 | 
						|
        Console.ReadKey();
 | 
						|
    }
 | 
						|
} |