Fürs Archiv. Eine Klasse für die Generierung eines Passwortes.
Es gibt im .NET-Framwork zwar die Methode System.Web.Security.Membership.GeneratePassword() welche ein Passwort generiert. jedoch entält dieses auch Sonderzeichen wie "^" welche für die Eingabe problematich sind.
// liefert ein 8stelliges Passwort mit einem Sonderzeichen
public class Password
{
public static string generate()
{
string standardChars = "abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ123456789";
string specialChars = "-+@#!?";
int passwordLength = 8;
// 3 Arrays anelegen und mit Zufallszahlen füllen
Random random = new Random();
int[] randomStandard = new int[passwordLength];
int[] randomSpecialField = new int[passwordLength];
for (int i = 0; i < passwordLength; i++)
randomStandard[i] = random.Next(standardChars.Length);
for (int i = 0; i < passwordLength; i++)
randomSpecialField[i] = random.Next(passwordLength);
// Passwort zusammensetzen
char[] password = new char[passwordLength];
int allowedCharCount = standardChars.Length;
int specialCharCount = specialChars.Length;
int specialField = random.Next(passwordLength);
for (int i = 0; i < passwordLength; i++)
{
if (i != specialField)
{
password[i] = standardChars[(int)randomStandard[i] % allowedCharCount];
}
else
{
password[i] = specialChars[(int)randomSpecialField[random.Next(specialChars.Length)] % specialCharCount];
}
}
return new string(password);
}
}