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 wenig 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(Convert.ToString(ergebnis)); } }