제공된 .NET 구현에서 사용자 시스템으로 사용자 인증을 마이그레이션하고 있습니다.SqlMembershipProvider 암호 해시 재현
우리는 aspNet_Membership 테이블에있는 이전 암호를 지원할 수 있기를 원합니다.
암호와 소금은이 테이블에 있으므로 이론적으로 SqlMembershipProvder가 사용하는 해시를 다시 계산할 수 있습니다.
그러나 사용중인 알고리즘을 설명하는 것을 찾을 수없는 것 같습니다. 회원 공급자를 조사하면 HMACSHA256을 사용하여 해시를 계산한다고 나와 있습니다.
그러나 저장된 암호 해시는 20 바이트 길이로 암호 및 salt의 sha256 해시를 계산하는 것 이상을 수행해야합니다.
회원 공급자가 거짓말 할 수 있습니까? SHA1 또는 RIPEMD를 사용하고 있습니까?
또는 사용중인 암호화 공급자에 액세스 할 수만 있다면 이전 암호와 소금을 전달할 수 있습니다 ... 필자는 반드시 바퀴를 다시 만들 필요가 없습니다.
감사합니다 해시 길이를 알아 차리지을 위해! 나는 하루 종일 해시를 재현하려고 노력해 왔습니다. SHA1 해시는 20 바이트입니다. 귀하의 관찰에 따라 SHA1을 수동 해시로 사용해 보았습니다. 물론, 그것은 내 MembershipProvider가 HMACSHA256 ('Membership.HashAlgorithmType' = "HMACSHA256")을 사용한다고 주장하는 것과 일치합니다! 진행. 이제 유일한 질문은 "WTF?"입니다. – xr280xr