⚡️ Миграция хеширования паролей без поломки логина
Ты сделал маленький и вроде бы аккуратный рефакторинг - и сломал весь логин.
Логику хеширования паролей ты аккуратно вынес в отдельный слой. Отлично.
А потом решил обновиться — заменить PBKDF2 на bcrypt.
Просто поменял реализацию. Казалось бы, безопасно.
Но внезапно:
- старые пользователи больше не могут войти
- пароли перестали совпадать
- аутентификация массово падает
Ты только что внёс breaking change, даже не заметив этого.
Это классическая ловушка в аутентификации — менять алгоритм хеширования без стратегии миграции.
Важно понимать:
- пароли в базе уже захешированы старым алгоритмом
- новый алгоритм не умеет их проверять
- простой swap реализации = мгновенный outage
-
⚡️Правильный подход:
- поддерживать несколько алгоритмов одновременно
- определять алгоритм по формату хеша
- при успешном логине пересохранять пароль новым алгоритмом
- без сброса паролей
- без даунтайма
Маленькие изменения в use case-ах, особенно в аутентификации, могут иметь огромные последствия.
Post #830
3.16K
