Можно ли заменить хешированный пароль MD5 паролем SHA-256?

Мне нужно изменить перенос пароля проекта, и я хотел бы знать, можно ли изменить метод хеширования на хешированный пароль.

Я думаю, что это возможно, но я не буду, если мне нужно расшифровать (что невозможно) или я могу применить SHA-256 к хешированному паролю MD5.

Буду признателен за любой совет или помощь. Спасибо!

Не делайте ни того, ни другого. Пожалуйста, не применяйте хеширование собственного пароля, особенно не используя MD5() или SHA1(). PHP предоставляет password_hash() и password_verify(), пожалуйста, используйте их для безопасности ваших пользователей.

RiggsFolly 07.02.2023 10:32

Вам нужно будет внести изменения как часть входа пользователя. Когда они в следующий раз войдут в систему, проверьте свой текущий пароль, если он пройдет, у вас будет подтвержден пароль в виде обычного текста. Затем проведите это через новый процесс хеширования и отметьте пользователя как перешедшего на новый механизм, чтобы вы использовали password_verisy() при следующем входе в систему.

RiggsFolly 07.02.2023 10:33

Я проверил эти методы. Спасибо. Но это старый проект. Вы рекомендуете хранить MD5 здесь?

Álvaro 07.02.2023 10:35

НЕТ, MD5 не является безопасным механизмом. Какую версию PHP вы используете в этом проекте?

RiggsFolly 07.02.2023 10:36

Это трудно объяснить. Это макропроект, разделенный на более мелкие проекты, один из которых был написан на vanilla PHP 5.5.38, а проект Symfony — на PHP 7.4.2.

Álvaro 07.02.2023 10:51

SHA256 также неверен. Вы заменяете одну неправильную вещь другой неправильной вещью. Вам нужно использовать password_hash.

user229044 11.02.2023 21:17
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
6
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Подобно RiggsFolly, уже упомянутому в комментариях, вы должны использовать функцию password_hash() и password_verify() вместо некоторых реализаций MD5 или SHA1, поскольку sha1 и md5 не являются безопасными функциями хэширования для паролей, их следует использовать только для контрольных сумм.

Как использовать bcrypt для хеширования в php

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

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