public class PassGen
{
//Feld: Standartlänge des Passwortes
///
/// Enthält die Länge des gewünschten Passwortes
///
/// Der default Wert ist acht.
private int mLaenge = 8;
//Feld: Alle möglichen Zeichen die verwendet werden können nur Buchstaben
///
/// Beinhaltet alle Möglichen Zeichen, die für das Passwort verwendet werden können und dürfen.
///
protected string[] mChars = {
"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z",
"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",
"1","2","3","4","5","6","7","8","9","0"
};
//Feld: Outputvariable in die die Ausgabe gespeichert wird
///
/// Hier wird das Passwort gespeichert.
///
private string mOutput;
//Eigenschaft: setzt oder liest die länge
///
/// Get-Set der Länge des Passwortes
///
public int Laenge
{
get
{
return mLaenge;
}
set
{
mLaenge = value;
}
}
//Eigenschaft: nur lesen des Outputs erlaubt
///
/// Get-Set des Passwortes.
///
public string Output
{
get
{
return mOutput;
}
set
{
}
}
//Case 1
///
/// Generiert das Passwort aus den Zeichen 0 - 9
///
/// Kein Rückgabewert
private void GenPassNum()
{
int iPoint = 0; //Variable in der die Zufallszahl gespeichert wird
Random rand1 = new Random(); //Erstellen der Instanz
for (int i = 0; i < mLaenge; i++) //Solange bis die Länge erreicht ist
{
iPoint = rand1.Next(52, 62); //Zufallszahl zwischen 52u.61 generieren da die Zaheln im Array an der Position stehen
if (mChars[iPoint] == "")//Falls das Array element leer ist zälen ich eins zurück um das Passwort trotzdem in voller länge zu erhalten
{
i--; //MINUS 1
}
else
{
mOutput += mChars[iPoint]; //Hier hänge ich das jeweilige Zeichen an mein Outputfeld
}
}
}
//Case 2
///
/// Generiert ein Passwort aus den Zeichen A - z und 0 - 9
///
/// Kein Rückgabewert
private void GenPassAlphNum()
{
int iPoint = 0;
Random rand2 = new Random();
for (int i = 0; i < mLaenge; i++)
{
int modulo = i % 2;
if (modulo == 0)
{
iPoint = rand2.Next(0, 52);
if (mChars[iPoint] == "")
{
i--;
}
else
{
mOutput += mChars[iPoint];
}
}
else
{
iPoint = rand2.Next(52, 62);
if (mChars[iPoint] == "")
{
i--;
}
else
{
mOutput += mChars[iPoint];
}
}
}
}
//Case 3
///
/// Generiert ein Passwort bestehend aus den Zeichen A - z
///
/// Kein Rückgabewert
private void GenPassAlph()
{
int iPoint = 0;
Random rand3 = new Random();
for (int i = 0; i < mLaenge; i++)
{
iPoint = rand3.Next(0, 52);
if (mChars[iPoint] == "")
{
i--;
}
else
{
mOutput += mChars[iPoint];
}
}
}
//Methode die anhand des Integer Wertes iCase die richtige Methode zur generierung auffruft
public void GenPassNow(int iCase)
{
switch (iCase)
{
case 1:
GenPassNum();
break;
case 2:
GenPassAlphNum();
break;
case 3:
GenPassAlph();
break;
}
}
}