Задать вопрос
@AleDv

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

Всем привет. Есть старый сайт, на котором пароли пользователей хешируются с помощью md5. Новый сайт написал на фрейме Laravel c модулем Sentinel для работы с пользователями.

При переносе данных столкнулся с проблемой совместимости паролей. Сами пароли в md5, а при регистрации новых юзеров, восстановлении пароля и проверки при входе на сайт используется другой алгоритм хеширования (bcrypt).

Какие варианты есть переноса пользователей?

P.S. была идея в лоб: просто перегенерировать пароли и выслать уведомления пользователям, но это как-то не гуманно по отношению к пользователям.
  • Вопрос задан
  • 653 просмотра
Подписаться 1 Оценить Комментировать
Ответ пользователя Melkij К ответам на вопрос (3)
Melkij
@Melkij
PostgreSQL DBA
Можете добавить default null поле для нового хеша пароля.
На момент успешной авторизации вы знаете действительный пароль пользователя, значит если новый пароль в базе null, а старый хэш совпал, то сохраняете новый хеш в новое поле, а поле со старым паролем скидываете в null.
Через пару месяцев/полгода/год/выбрать_по_настроению вырезаете код старого хэша и дропаете колонку из базы. Всем желающим авторизоваться, но у кого стоит null вместо пароля - пишете, что необходимо пройти процедуру восстановления пароля.

Активная аудитория изменение не заметит. Теми, кто заходит слишком редко - придётся пожертвовать и заставить пройти более длинную процедуру.
Ответ написан
Комментировать