Задать вопрос
@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 или не подтвержден.
Подскажите как быть в такой ситуации?
  • Вопрос задан
  • 110 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
Minifets
@Minifets
Hello world!!!
Создайте в таблице пользователей еще 1 поле (например password_hash_version).
Всем старым пользователям проставьте метод md5 в это поле, а новым пользователям или тем кто сбрасывает пароль bcrypt.
И при авторизации просто смотрите какой алгоритм использовать, старый или новый.
Когда переведете всех пользователей на новый алгоритм хеширования, старый можно удалить.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы