Задать вопрос
eucalipt
@eucalipt
Самоделкин.

Почему hash_password() каждый раз генерирует разное значение?

Вопрос скорее не в том, почему (потому что итак понятно, что это из за соли, которая каждый раз разная), а в том, какой от этого смысл?

Если я запишу в базу такой сгенерированный пароль, а потом буду сравнивать введенное значения пользователя, зашифрованное этой функцией со значением в базе, то они будут разные, соответственно пользователь никогда не сможет войти на сайт.

Другое дело - использование любой другой функции, будь то sha256, sha512, да тот же md5. Они постоянно генерируют одно и то же значение, поэтому его всегда можно сравнить со значением в базе.

Так как же быть?
  • Вопрос задан
  • 1863 просмотра
Подписаться 2 Простой 2 комментария
Решения вопроса 4
@liff
PHP >= 5.4, 7 + PostgreSQL + JS + EmberJs +++
hash_password создан для хеширования, для сравнения введенных данных есть другой метод. Учите мат. часть.
Ответ написан
Есть функция password_verify, вот с помощью нее проверяй.

php.net/manual/ru/function.password-verify.php
Ответ написан
Комментировать
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Если я запишу в базу такой сгенерированный пароль, а потом буду сравнивать введенное значения пользователя, зашифрованное этой функцией со значением в базе, то они будут разные, соответственно пользователь никогда не сможет войти на сайт.

Не надо шифровать заново и сравнивать, используйте password_verify.
Ответ написан
Комментировать
BuriK666
@BuriK666
Компьютерный псих
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы