Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как сгенерировать случайный пароль

Короткий ответ

Выбирайте символы из набора функцией random_int():

<?php
 
function randomPassword(int $length = 12): string
{
    $chars = 'abcdefghijkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789';
    $password = '';
 
    for ($i = 0; $i < $length; $i++) {
        $password .= $chars[random_int(0, strlen($chars) - 1)];
    }
 
    return $password;
}
 
echo randomPassword();

Почему не rand() и не shuffle()

rand(), mt_rand(), str_shuffle() и shuffle() предсказуемы. Для паролей и токенов подходят только random_int() и random_bytes(). В наборе выше нет похожих символов — 0 и O, 1 и l, — чтобы пароль было легко прочитать.

Функции из этого ответа

  • random_int — Возвращает случайное целое число из диапазона.
  • str_repeat — Повторяет строку заданное число раз.
  • random_bytes — Возвращает случайные байты, пригодные для защиты.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.