Мне нужно изменить перенос пароля проекта, и я хотел бы знать, можно ли изменить метод хеширования на хешированный пароль.
Я думаю, что это возможно, но я не буду, если мне нужно расшифровать (что невозможно) или я могу применить SHA-256 к хешированному паролю MD5.
Буду признателен за любой совет или помощь. Спасибо!
Вам нужно будет внести изменения как часть входа пользователя. Когда они в следующий раз войдут в систему, проверьте свой текущий пароль, если он пройдет, у вас будет подтвержден пароль в виде обычного текста. Затем проведите это через новый процесс хеширования и отметьте пользователя как перешедшего на новый механизм, чтобы вы использовали password_verisy()
при следующем входе в систему.
Я проверил эти методы. Спасибо. Но это старый проект. Вы рекомендуете хранить MD5 здесь?
НЕТ, MD5 не является безопасным механизмом. Какую версию PHP вы используете в этом проекте?
Это трудно объяснить. Это макропроект, разделенный на более мелкие проекты, один из которых был написан на vanilla PHP 5.5.38, а проект Symfony — на PHP 7.4.2.
SHA256 также неверен. Вы заменяете одну неправильную вещь другой неправильной вещью. Вам нужно использовать password_hash
.
Подобно RiggsFolly, уже упомянутому в комментариях, вы должны использовать функцию password_hash()
и password_verify()
вместо некоторых реализаций MD5 или SHA1, поскольку sha1 и md5 не являются безопасными функциями хэширования для паролей, их следует использовать только для контрольных сумм.
Как использовать bcrypt для хеширования в php
если функция password_hash
отсутствует в вашей версии php или устарела, то вы можете поискать безопасную реализацию этой проблемы, которая не является алгоритмом одного человека и существует дольше.
Не делайте ни того, ни другого. Пожалуйста, не применяйте хеширование собственного пароля, особенно не используя
MD5()
илиSHA1()
. PHP предоставляет password_hash() и password_verify(), пожалуйста, используйте их для безопасности ваших пользователей.