From 91da9d3df100198ea00df54b3aadb4f1180983a9 Mon Sep 17 00:00:00 2001 From: Peter Date: Tue, 20 Jun 2017 20:25:15 +0000 Subject: [PATCH] =?UTF-8?q?'PasswortChecker'=20=C3=A4ndern?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PasswortChecker | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/PasswortChecker b/PasswortChecker index c4728ae..4be85a5 100644 --- a/PasswortChecker +++ b/PasswortChecker @@ -4,6 +4,7 @@ using System.Text.RegularExpressions; class PasswortChecker { + public int isGutesPasswort(string passwort) { int zeichenAnzahl = 0; @@ -17,6 +18,7 @@ class PasswortChecker int punkteZaehler = 0; + // Array zur prüfung der Stringbestandteile im einzelnen erzeugen string[] passwortBestandteile = Regex.Split(passwort, @""); passwortBestandteile = passwortBestandteile.Where(val => val != "").ToArray(); @@ -25,9 +27,9 @@ class PasswortChecker 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++; + // Prüfung auf Erfüllung der Kriterien mit regulären Ausdrücken + if (Regex.IsMatch(passwortBestandteil, "[A-Z]")) { grossbuchstabenAnzahl++; buchstabenAnzahl++; } + if (Regex.IsMatch(passwortBestandteil, "[a-z]")) { kleinbuchstabenAnzahl++; buchstabenAnzahl++; } if (Regex.IsMatch(passwortBestandteil, "[0-9]")) ziffernAnzahl++; if (!Regex.IsMatch(passwortBestandteil, "[A-Za-z0-9öäüÄÖÜßáàâéèêíìîóòôúùû]")) sonderzeichenAnzahl++; @@ -40,11 +42,12 @@ class PasswortChecker 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 (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 (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 (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"); @@ -64,7 +67,17 @@ class hauptProgramm PasswortChecker pwc = new PasswortChecker(); 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 Console.WriteLine("Druecken Sie zum Bennden eine beliebige Taste");