Encodera

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

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

Как проверить надёжность пароля

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

Проверьте длину и наличие нужных символов:

<?php
 
function passwordErrors(string $password): array
{
    $errors = [];
 
    if (mb_strlen($password) < 8) {
        $errors[] = 'at least 8 characters';
    }
 
    if (!preg_match('/\p{L}/u', $password)) {
        $errors[] = 'a letter';
    }
 
    if (!preg_match('/\d/', $password)) {
        $errors[] = 'a digit';
    }
 
    return $errors;
}
 
echo json_encode(passwordErrors('abc')), "\n";
echo json_encode(passwordErrors('correct horse 42'));

Результат:

["at least 8 characters","a digit"]
[]

Длина важнее сложности

Длинная фраза надёжнее короткого пароля со значками. Не ограничивайте длину сверху слишком строго и не запрещайте пробелы — а хранить пароль всё равно нужно только в виде password_hash().

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

  • preg_match — Проверяет строку по регулярному выражению.
  • mb_strlen — Возвращает количество символов в строке.
  • password_hash — Создаёт хеш пароля для хранения в базе.

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

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