PasswortChecker.cs

Es soll eine C# Klasse implementiert werden, die PasswortChecker heißt. Diese soll eine Methode int erhalten, die einen String übergeben bekommt, der ein Passwort repräsentiert. Dieses soll sodann auf diverse Kriterien hin überprüft werden. (Die Kriterien ergeben sich aus dem Quelltext).
master
Peter Ostmann 8 years ago
parent d0f6c55611
commit a16a4c5b2f

@ -0,0 +1,69 @@
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));
}
}
Loading…
Cancel
Save