여기 보안 Noob.asp.net의 암호화 된 암호 SQLMembershipProvider 및 Umbraco 멤버십 공급자
저는 asp.net 회원 자격을 움 브라 코 회원 자격으로 변경하려고합니다. 그러나 passwordFormat = "Encrypted"를 사용하는 것은 Umbraco 멤버십 공급자와 Microsoft의 SQL 멤버십 공급자를 다르게 암호화하는 것 같습니다.
SQL 멤버 자격 공급자 (passwordFormat = "Encrypted")로 두 명의 사용자를 등록하면 인코딩 된 암호가 다릅니다. Umbraco 제공 업체와 똑같이한다면 그들은 동일합니다.
모든 문자열이 동일한 항목 (올바른 암호)으로 암호를 해독하는 동안 - 분명히 umbraco DB (ValidateUser 실패)에서 SQL 멤버 자격 공급자가 암호화 한 비밀번호를 사용할 수 없습니다.
누구든지 아이디어가 있습니까?
참고 : 두 사이트에서 동일한 machineKey를 사용하고 있습니다.
편집 : Umbraco 멤버십 공급자에서 EncryptPassword() 및 EncodePassword()를 호출하면 다른 결과가 표시되며 EncodePassword는 올바른 호출입니다. 그러나 .NET 회원 공급자에서는 EncodePassword를 사용할 수 없습니다. 이것은 나의 혼란의 또 다른 부분이었다.
암호가 소금에 의해 다를 수 있습니다. 회원 데이터베이스에서 PasswordSalt 열을 확인하십시오. Base64 문자열이어야합니다. – Infotekka
@Infotekka 많은 생각을 한 후에 .NET이 소금을 가지고 있기 때문에 Umbraco는 그렇지 않다는 것을 확신합니다. 나는 암호화 (해싱이 아닌)가 소금을 사용할 수 있다는 것을 깨닫지 못했습니다 (주로 소금을 알지 못하고 어떻게 원래의 일반 텍스트로 돌아갈 수 있었는지 모르기 때문에). 그리고 지금은 적절한 테스트를하고 있습니다. 소금을 바꿀 경우 로그인 할 수 없습니다. –
@Infotekka 이제 확인해 보았습니다.이 답변을 진짜 답으로 만들고 싶습니다. 정확하게 표시해 드리겠습니다. - 선명도 덕분입니다! –