Задать вопрос
@Alk90
php, mysql, jquery, css, html, api

Как изменить систему хеширования паролей?

Всем привет! Я когда-то нашел на просторах, вот такую систему хеширования паролей:
$salt || $salt = uniqid();
$hash = md5(md5($password . md5(sha1($salt))));

for($i = 0; $i < 10; ++$i) {
	$hash = md5(md5(sha1($hash)));
}

Ну и собственно пользовался её.
Сейчас мне больше нравится стандартный способ php генерации хешей для паролей с помощью пункции password_hash ну и собственно простая проверка с помощью функции password_verify
Как мне теперь перейти от старой системы хеширования, к новой? Ведь придется сбросить все пароли у пользователей. Более того, пользователь не сможет восстановить пароль, если у него не сохранен email или не подтвержден.
Подскажите как быть в такой ситуации?
  • Вопрос задан
  • 126 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
Minifets
@Minifets
Hello world!!!
Создайте в таблице пользователей еще 1 поле (например password_hash_version).
Всем старым пользователям проставьте метод md5 в это поле, а новым пользователям или тем кто сбрасывает пароль bcrypt.
И при авторизации просто смотрите какой алгоритм использовать, старый или новый.
Когда переведете всех пользователей на новый алгоритм хеширования, старый можно удалить.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽