ILegacyPasswordVerifier.cs 761 B

1234567891011121314
  1. namespace Application.Abstractions.Authentication;
  2. // dpot 1.0 (legacy)에서 이관된 회원의 비밀번호 해시를 검증하기 위한 추상화.
  3. // 현행은 PBKDF2(Member.PasswordHash)를 사용하지만, legacy 데이터는 bcrypt($2a$/$2b$/$2y$) 형식이
  4. // Member.Password 컬럼에 보존되어 있다. 로그인 시 PBKDF2 검증이 실패하면 이 검증기로 fallback 한 뒤,
  5. // 성공하면 PBKDF2로 재해싱(lazy upgrade)하여 점진적으로 bcrypt 의존을 제거한다.
  6. public interface ILegacyPasswordVerifier
  7. {
  8. // 주어진 해시가 legacy(bcrypt) 형식인지 판별
  9. bool IsLegacyHash(string? hash);
  10. // 평문이 legacy bcrypt 해시와 일치하는지 검증
  11. bool Verify(string password, string legacyHash);
  12. }