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

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

В таблице пользователей старой бд некоторые пароли сохранены с использованием sha1(), в новой базе они хранятся после обработки через password_hash(). Скажите, есть ли возможность перенести пароли из старой базы и сохранить возможность авторизации пользователей?
  • Вопрос задан
  • 102 просмотра
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@deliro
Да. Для этого в каждом password hash есть информация об алгоритмах, соли, количестве итераций

Например: sha1$15000$mysalt$<результат хэша>, bcrypt$3$...

В коде появляется список хэшеров, хэш сплитится по символу (например $) и по алгоритму подбирается хэшер. Он занимается дальнейшей обработкой. Плюс есть дефолтный хэшер, который используется для всех новых паролей.

Если у тебя сейчас все хэши в одном алгоритме, то задача простая — добавить префикс из того самого sha1$15000$mysalt$

Причём, можно автоматом мигрировать базу пользователей на новые хэши. Для этого после логина нужно иметь информацию о хэше и если он не является актуальным, то менять хэш в базе. На этой стадии твой бэк будет знать пароль пользователя.
Ответ написан
Ваш ответ на вопрос

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

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