먼저 비밀번호를 암호화하면 안됩니다. them을 해시해야합니다 (이에 대한 영원한 논쟁이 있습니다).
해싱 암호의 경우 HMACSHA1을 사용할 수 있습니다. 예를 들어 사용자를 만들고 암호를 저장하기 전에 다음을 수행하십시오.
HMACSHA1 hash = new HMACSHA1();
hash.Key = youKey; // you could use machine key
encodedPassword = Convert.ToBase64String(hash.ComputeHash(Encoding.Unicode.GetBytes(password)));
그런 다음 해당 값을 데이터베이스에 저장하십시오. 그러면 입력 된 암호를 해싱하고 해시 값을 비교하여 입력 된 암호를 비교할 수 있습니다.
<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="20">
<providers>
<remove name="AspNetSqlProvider" />
<add name="SqlProvider"
type="System.Web.Security.SqlMembershipProvider"
passwordFormat="Hashed"
applicationName="/" />
</providers>
</membership>
체크 아웃이 내 blog post : 암호가 설정 파일에 해시되는 것을 지정해야 물론
. 여기에는 해시 된 및 암호화 된 암호를 사용하는 예제가 있습니다.
이 경우에는 일반 텍스트로 저장하고 싶지 않다는 의미입니다. –
@MikeWills - 당신이 무슨 뜻인지 이해할 수는 없지만, 암호화되어 있거나 해시되어 있는지 여부에 상관없이 일반 텍스트로 저장하지는 않습니다. – TheBoyan
비밀번호가 pass1234이면 비밀번호 입력란에 pass1234가 표시됩니다. Hashed 나는 랜덤 횡설수설처럼 보일 것이다. –