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
}

Не пытайтесь сравнивать хеш при каждой загрузке страницы.

Другие вопросы по тегам