2012-07-17 2 views
0

풍부한 도메인 모델을 사용하는 사용자 지정 MembershipProvider 클래스를 구현하는 중입니다. 내가 암호를 올바르게 처리하기를 원하기 때문에 나는 주저합니다. 데이터베이스의 암호를 해시하고 싶지만 ASP.NET에서이 작업을 수행하기 위해 신뢰할만한 모범 사례 또는 예제 코드를 찾을 수없는 것 같습니다. 사용자 지정 MembershipProvider 클래스를 작성할 수 있지만 어떻게 든 기본 클래스를 사용하여 암호 세부 정보를 처리합니까?ASP.NET에서 사용자 지정 MembershipProvider 클래스의 암호 처리

답변

0

직접 해싱 암호를 두려워하지 마십시오. 주목할 것 몇 가지.

1) 항상 당신이 hash = hashfunction(password + salt)이 있도록 해시 된 암호를 사용하여 고유의 해시를 저장하는 기억) MD5는, SHA256/SHA512이

2) 지금으로하지 않습니다 (손상되지 않은 해시 알고리즘을 사용합니다. 이는 데이터베이스를 도난당한 경우 사전 계산 된 해시를 사용하여 누군가가 쉽게 암호를 얻지 못하도록 방지하기위한 것입니다.

3) (선택 사항) 해시가 거의 없거나 수백 또는 수천 번 해시되고 해시 된 암호로 라운드 카운터를 저장하십시오. 그러면 도난당한 데이터베이스에서 일반 텍스트 암호를 얻으려는 사람이 더 느려집니다.

+0

코드 샘플을 알고 있습니까? –

+0

http://crackstation.net/hashing-security.htm –

1

가장 좋은 방법은 SqlMembershipProvider에서 상속 받고 EncryptPassword을 제외한 대부분의 메서드를 재정의하는 것입니다.이 메서드는 기본 ASP.NET 동작을 사용합니다.

public class CustomMembershipProvider : SqlMembershipProvider 
{ 
} 
관련 문제