TGViewer
C# 1001 notes C# 1001 notes @csharp_1001_notes · 6.64K subscribers
Post #830 3.16K
⚡️ Миграция хеширования паролей без поломки логина

Ты сделал маленький и вроде бы аккуратный рефакторинг - и сломал весь логин.

Логику хеширования паролей ты аккуратно вынес в отдельный слой. Отлично.
А потом решил обновиться — заменить PBKDF2 на bcrypt.

Просто поменял реализацию. Казалось бы, безопасно.

Но внезапно:
- старые пользователи больше не могут войти
- пароли перестали совпадать
- аутентификация массово падает

Ты только что внёс breaking change, даже не заметив этого.

Это классическая ловушка в аутентификации — менять алгоритм хеширования без стратегии миграции.

Важно понимать:
- пароли в базе уже захешированы старым алгоритмом
- новый алгоритм не умеет их проверять
- простой swap реализации = мгновенный outage
-
⚡️Правильный подход:
- поддерживать несколько алгоритмов одновременно
- определять алгоритм по формату хеша
- при успешном логине пересохранять пароль новым алгоритмом
- без сброса паролей
- без даунтайма

Маленькие изменения в use case-ах, особенно в аутентификации, могут иметь огромные последствия.
More from @csharp_1001_notes
  1. Sep 20, 2026🧩 C# Channels: сообщение попало в очередь. Почему обработчик его не получил? Два воркера…
  2. Sep 16, 2026Эта задача проверяет понимание Memory<T>, pooling, ownership, IAsyncEnumerable, cancellati…
  3. Sep 16, 2026# C# 14: хитрая задача на ArrayPool, IAsyncEnumerable и время жизни памяти Есть поток данн…
  4. Sep 14, 2026# C# 14: конкурентный кеш без race condition Реализуйте потокобезопасный кеш: public seale…
  5. Sep 14, 2026🔍Тестовое собеседование с Senior C# разработчиком уже завтра 15 сентября(уже завтра!) в 1…
  6. Sep 11, 2026🔧 Как передать многострочный PEM через Aspire в ASP.NET Core Сертификаты и ключи в PEM со…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →