Генерация случайного пароля, содержащего как цифры, так и буквы

#php

#php

Вопрос:

Я хочу сгенерировать случайный пароль из 15 символов, который содержит КАК цифры, так и буквы. Есть ли простой способ сделать это?

Я хочу избежать ситуации, когда я получаю все цифры в пароле, но не хочу ставить перед паролем какие-либо буквы.

Ответ №1:

Сгенерируйте массив со случайным числом, случайным символом и 13 случайными символами / числами, а затем используйте shuffle

Комментарии:

1. Я думаю, что ваш метод выглядит выполнимым

Ответ №2:

Вы могли бы использовать:

 $pw = substr(md5(uniqid()), 0, 15);
  

Я думаю, что при таком подходе маловероятно, что в итоге будут получены все числа.

Комментарии:

1. есть ли вероятность, что md5 выдаст все числа для первых 15 символов?

2. Я не знаю точно, как md5() работает внутри, но я не думаю, что это будет вероятно.

3. вы можете запускать функцию в цикле — до первого символа в [a-zA-Z]

4. Или что-то вроде do {$pw = substr(md5(uniqid(rand(), true)), 0, 15);} while (preg_match('/^[0-9]*$/', $pw) || preg_match('/^[A-Z]*$/', $pw)); генерации паролей, пока вы не получите тот, который содержит не все цифры и не все буквы.

5. Это огромный перебор. Смысл был в том, чтобы не разрешать пароли с номерами, поэтому вы можете просто проверить это с помощью is_numeric($pw) .

Ответ №3:

вы можете генерировать пароль в цикле до нужной вам длины строки пароля. Вы можете использовать функцию rand() внутри него, чтобы избежать символов continues . вы также можете использовать код ASCII для него с помощью функции char ()

Ответ №4:

Как насчет этого? Генерирует очень случайный буквенно-цифровой пароль из 15 символов.

 $p = substr ( md5(uniqid(rand(), true)), 0, 15);
  

Комментарии:

1. есть ли вероятность, что md5 выдаст все числа для первых 15 символов?