m1rvi
@m1rvi
Отметь блин решением, если помог

Как сравнить пароль со старым md5?

Столкнулся с проблемой, что сравнение паролей не хочет давать true, хоть я точно знаю, что они одинаковы.
md5, потому, что моя задача сохранить бд с юзерами, а сайт делался еще 5 лет назад и его надо обновить и добавить другие фичи..
Вот код:
if(password_verify($data['password'], $row['pass'])) {
//row - это то что я достал с дб(пароль). 
$_SESSION['logged_user'] = $user;
header("Location: cabinet/index.php");
}
else { 
    echo "не получилось";
}

На всякий случай:
spoiler

e67459d13869483c8d70238fee01b158c6459609a3854b724db0221fd0d659cd - хешированный пароль в дб
1234 - реальный пароль


Простите за тупой вопрос
  • Вопрос задан
  • 162 просмотра
Решения вопроса 1
@dzhebrak
Если в бд у вас хранится md5-хеш пароля (что не рекомендуется), то сравнивайте пароли с помощью функции md5 https://www.php.net/manual/ru/function.md5.php
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
SagePtr
@SagePtr
Еда - это святое
Можно хранить к примеру несколько видов хешей - старые md5 и новые, полученные функцией password_hash.
А в самом коде проверять, если хэш начинается с $ - то это новый хэш, проверять его через password_verify, а если нет - то это старый хэш, проверять его примерно так:
if (hash_equals(md5($password), $hash))
Ну и в том случае, если хэш старого формата подошёл, то не просто пустить пользователя, но и сгенерировать из введённого им пароля новый хэш функцией password_hash и сохранить его в бд, чтобы со временем старые хэши заменились на новые.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
RecruitIT Москва
от 100 000 до 160 000 ₽
Сбер Москва
До 240 000 ₽
RecruitIT Москва
от 120 000 до 150 000 ₽
22 окт. 2020, в 08:31
400000 руб./за проект
22 окт. 2020, в 08:14
800 руб./за проект
22 окт. 2020, в 06:46
3000 руб./за проект