Posts
391
Comments
137
Trackbacks
0
Generierung eines Passwortes

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);
   }
}

posted on Thursday, February 01, 2007 1:52 PM Print
Comments
No comments posted yet.

Post Comment

Title *
Name *
Email
Url
Comment *  
Please add 3 and 1 and type the answer here: