password_hash каждый раз возвращает другое значение
Я делаю систему входа в систему и хочу хешировать пароли, чтобы сделать их более безопасными, но каждый раз он возвращает разные хэши, и даже не может быть проверен с помощью password_verify(), вот мой код:
$password = password_hash($password4, PASSWORD_DEFAULT);
и вот мой код для проверки:
if(password_verify($password4, $dbpassword))
1 ответ
Итак, давайте рассмотрим одну часть за раз
но каждый раз он возвращает новый хэш
Это идея. password_hash
предназначен для генерации случайной соли каждый раз. Это означает, что вы должны разбивать каждый хэш по отдельности, а не угадывать одну соль, использованную для всего, и иметь огромную ногу.
Там нет необходимости MD5
или сделайте любое другое хеширование. Если вы хотите поднять безопасность password_hash
Вы передаете более высокую стоимость (стоимость по умолчанию 10)
$password = password_hash($password4, PASSWORD_DEFAULT, ['cost' => 15]);
Как проверить
if(password_verify($password4, $dbpassword))
Так $password4
должен быть ваш пароль и $dbpassword
должен быть хеш, который вы сохранили в своей базе данных