Also ich hab es jetzt folgendermaßen gelöst. Was ich nicht rausgefunden habe, wie ich einfach ein ASCII-Zeichen eines bestimmten Bereichs per Random zurückgeben kann, wie es bei PowerShell möglich ist.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39:
| static string RandomPass(int length) { string password = String.Empty;
string special = "!\"#$%&'()*+,-./"; string number = "0123456789"; string upperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; string lowerCase = "abcdefghijklmnopqrstuvwxyz";
char[] specials = special.ToCharArray(); char[] numbers = number.ToCharArray(); char[] upperCases = upperCase.ToCharArray(); char[] lowerCases = lowerCase.ToCharArray(); char[] all = (special + number + upperCase + lowerCase).ToCharArray();
Random rnd = new Random(); for (int i = 1; i < length; i++) { switch (i) { case 6: password += specials[rnd.Next(0, specials.Length - 1)].ToString(); break; case 3: password += numbers[rnd.Next(0, numbers.Length - 1)].ToString(); break; case 5: password += upperCases[rnd.Next(0, upperCases.Length - 1)].ToString(); break; case 9: password += lowerCases[rnd.Next(0, lowerCases.Length - 1)].ToString(); break; default: password += all[rnd.Next(0, all.Length - 1)].ToString(); break; } } return password; } |