php password_hash меняется при обновлении
Я пытаюсь построить форму с вводом пароля. Я пытаюсь хешировать пароль через php password_hash
и сохранить его в БД. И когда пользователи войдут в систему, я хеширую его входные данные и проверяю, так ли это, как в БД.
Проблема в том, что когда я использую password_hash, он дает мне случайный вывод при каждом обновлении. Ввод все тот же. Это делает невозможным для пользователя вход в систему, потому что выходной хеш никогда не будет соответствовать тому, что находится в БД.
Я проверяю это так:
$pw = "hello";
echo password_hash ($pw, PASSWORD_DEFAULT);
the first echo = $2y$10$7GwPLFNIhybl6tcyuYsH..Dtgfn2hF7RUDwZ99o7BkL6eza4Dsope;
echo again = $2y$10$7tvaZHupw8Ik8Id/ImHCHekpp/Deg4E.XkG82zaVYx262Exv3zMde;
Я делаю что-то неправильно? Пожалуйста, помогите
1 ответ
Да. Вы делаете что-то не так.
hash
Ожидается, что будет меняться при каждом запросе. Это цель.
Что вам нужно сделать, это проверить пароль на этот хэш.
if(password_verify($password, $hash)){
//correct
}
Не пытайтесь сравнивать хеш при каждой загрузке страницы.