как сравнить пароль зашифрованный c помощью md5 с обычным

135
27 декабря 2020, 18:00

Я совсем новичек в php, хотел сделать простую страницу регистрация\авторизация. Регистрацию сделал без проблем, а вот с авторизацией вопрос. При регистрации я хеширую, или как там правильно, через md5(), как его сравнить с введенным при авторизации паролем?!? Сначала попробовал просто их сравнить, потом понял что это уж очень глупо, тоже хешировал введеный пароль и сравнил, но тоже чего-то не работает(

Answer 1

Как правильно написали в комментариях, md5 - не шифрование, а хэширование. И использовать MD5 для "защиты" паролей нельзя. Использовать надо специально предназначенные для этого функции, password_hash() и password_verify().

Это означает, в частности, что в запросе проверить валидность пароля нельзя, надо сначала достать его из БД, а потом проверить соответствующий функцией. Пример того, как это правильно сделать при использовании подготовленных выражений в PDO, можно посмотреть здесь

Answer 2

Нужно вычислить хеш от введенного пароля и сравнить хеши введенного пароля с сохраненным.

Скажем, так

SELECT
  id
FROM
  users
WHERE
  name = :name AND
  password_hash = MD5(:password);
READ ALSO
Однотипные маршруты в Laravel

Однотипные маршруты в Laravel

В моем приложении появляется слишком много однотипных маршрутовРазницы между ними практически нет, кроме названия контроллера и самого...

144
Ajax и wordpress

Ajax и wordpress

Можно ли сделать свой файл обработчик ajax, например testphp, который будет лежать в папке с темой, рядом с footer

117
Обращение к api

Обращение к api

В распоряжении имею php и js Нужно делать обращения к различным api Можно ли как то это совершать чтобы не было видно где происходит это обращение,...

119
Создание Прайс листа в Wordpress

Создание Прайс листа в Wordpress

Требуется реализовать возможность ввода данных в таблицы из админ-панели

132