Создать случайный пароль очень просто.но генерировать партию сложнее.
public static string getRandomPassword(int letters, int getallen) {
//int letters = 8;
//int getallen = 5;
char[] letterdeel = new char[letters];
int minGetal = (int)Math.Pow(10, getallen - 1);
int maxGetal = (int)Math.Pow(10, getallen);
string password;
Random r = new Random();
int test = (int)(DateTime.Now.Ticks);
for (int i = 0; i < letters; i++) {
r = new Random((int)(DateTime.Now.Ticks) + i);
bool capital = r.Next(2) == 0 ? true : false;
if (capital) {
letterdeel[i] = (char)r.Next(65, 91);
} else {
letterdeel[i] = (char)r.Next(97, 123);
}
}
password = new string(letterdeel);
password += r.Next(minGetal, maxGetal);
return password;
}
это мой метод, пароли должны быть в определенном формате букв и цифр.это работает нормально, однако, если у меня есть цикл for
, извлекающий 100 паролей из этого метода, в моем массиве у меня 5-8 одинаковых паролей, затем снова 5-8 одинаковых проходов.
я знаю ПОЧЕМУэто из-за случайной функции и часов, от которых она зависит, но как мне это исправить?