'PasswortChecker' ändern

master
Peter Ostmann 8 years ago
parent 47caeff161
commit 91da9d3df1

@ -4,6 +4,7 @@ using System.Text.RegularExpressions;
class PasswortChecker class PasswortChecker
{ {
public int isGutesPasswort(string passwort) public int isGutesPasswort(string passwort)
{ {
int zeichenAnzahl = 0; int zeichenAnzahl = 0;
@ -17,6 +18,7 @@ class PasswortChecker
int punkteZaehler = 0; int punkteZaehler = 0;
// Array zur prüfung der Stringbestandteile im einzelnen erzeugen
string[] passwortBestandteile = Regex.Split(passwort, @""); string[] passwortBestandteile = Regex.Split(passwort, @"");
passwortBestandteile = passwortBestandteile.Where(val => val != "").ToArray(); passwortBestandteile = passwortBestandteile.Where(val => val != "").ToArray();
@ -25,9 +27,9 @@ class PasswortChecker
int passwortBestandteileIndex = 0; int passwortBestandteileIndex = 0;
foreach (string passwortBestandteil in passwortBestandteile) foreach (string passwortBestandteil in passwortBestandteile)
{ {
if (Regex.IsMatch(passwortBestandteil, "[a-zA-Z]")) buchstabenAnzahl++; // Prüfung auf Erfüllung der Kriterien mit regulären Ausdrücken
if (Regex.IsMatch(passwortBestandteil, "[A-Z]")) grossbuchstabenAnzahl++; if (Regex.IsMatch(passwortBestandteil, "[A-Z]")) { grossbuchstabenAnzahl++; buchstabenAnzahl++; }
if (Regex.IsMatch(passwortBestandteil, "[a-z]")) kleinbuchstabenAnzahl++; if (Regex.IsMatch(passwortBestandteil, "[a-z]")) { kleinbuchstabenAnzahl++; buchstabenAnzahl++; }
if (Regex.IsMatch(passwortBestandteil, "[0-9]")) ziffernAnzahl++; if (Regex.IsMatch(passwortBestandteil, "[0-9]")) ziffernAnzahl++;
if (!Regex.IsMatch(passwortBestandteil, "[A-Za-z0-9öäüÄÖÜßáàâéèêíìîóòôúùû]")) sonderzeichenAnzahl++; if (!Regex.IsMatch(passwortBestandteil, "[A-Za-z0-9öäüÄÖÜßáàâéèêíìîóòôúùû]")) sonderzeichenAnzahl++;
@ -40,11 +42,12 @@ class PasswortChecker
passwortBestandteileIndex++; passwortBestandteileIndex++;
} }
// Ausgabe der Gründe für etwaige Punktabzüge
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 (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 (kleinbuchstabenAnzahl >= 1) punkteZaehler++; else Console.WriteLine("Punktverlust -1 wegen zu weniger Kleinbuchstaben");
if (grossbuchstabenAnzahl >= 2) punkteZaehler++; else Console.WriteLine("Punktverlust -1 wegen zu weniger Großbuchstaben"); if (grossbuchstabenAnzahl >= 2) punkteZaehler++; else Console.WriteLine("Punktverlust -1 wegen zu weniger Großbuchstaben");
if (buchstabenAnzahl >= 2) punkteZaehler++; else Console.WriteLine("Punktverlust -1 wegen zu weniger Buchstaben");
if (ziffernAnzahl >= 2) punkteZaehler++; else Console.WriteLine("Punktverlust -1 wegen zu weniger Ziffern"); 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 (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 (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"); if (zifferInnerhalb >= 1) punkteZaehler++; else Console.WriteLine("Punktverlust -1 wegen fehlender oder falscher Position einer Ziffer");
@ -64,7 +67,17 @@ class hauptProgramm
PasswortChecker pwc = new PasswortChecker(); PasswortChecker pwc = new PasswortChecker();
int ergebnis = pwc.isGutesPasswort(passwort); int ergebnis = pwc.isGutesPasswort(passwort);
Console.WriteLine("Das Passwort erreicht " + Convert.ToString(ergebnis) + " von 8 erreichbaren Punkten"); string antwort = "";
if (ergebnis < 8)
{
antwort = "Das ist zu wenig, bitte ändren Sie das Passwort und starten Sie die Anwendung erneut!";
}
else
{
antwort = "Das ist Perfekt - alle Kriterien sind erfüllt!";
}
Console.WriteLine("Das Passwort erreicht " + Convert.ToString(ergebnis) + " von 8 erreichbaren Punkten. " + antwort);
// Konsolenfenster offen halten // Konsolenfenster offen halten
Console.WriteLine("Druecken Sie zum Bennden eine beliebige Taste"); Console.WriteLine("Druecken Sie zum Bennden eine beliebige Taste");

Loading…
Cancel
Save