2010-06-11 2 views
1

을 만들 수 있습니다. 사용자가 애플리케이션에 로그인 할 수 있도록 비밀번호를 확인하려면 어떻게해야합니까?C# 해시 암호는 소금 질문

+0

이것을 사용할 수 있습니다. http://encrypto.codeplex.com/ – Omu

답변

8

암호 해시와 함께 데이터베이스에 소금을 저장해야합니다.

더 적은 임의성을 제공하므로 GetNonZeroBytes으로 전화하면 안됩니다.

+0

대신 GetBytes()를 호출 하시겠습니까? – 5YrsLaterDBA

+0

예. 그렇습니다. – SLaks

3

응용 프로그램이 다시 시작될 때마다 소금이 바뀌면 데이터베이스 (사용자 레코드에)에 저장해야합니다.

1

소금은 사용자 레코드를 만들 때 생성되는 정적 인 것으로, 사용자 ID와 암호 + 해시의 해시와 함께 저장합니다.

사용자가 로그온을 시도하면 ID를 사용하여 소금을 찾아 암호와 결합하고 해시 한 다음 저장된 해시와 비교합니다. 일치하면 일치 함.

보안 데이터베이스에 대한 액세스 권한이있는 공격자가 암호 -> 해시 매핑 데이터베이스를 미리 준비 할 수 없도록 한 다음 간단한 역방향 조회를 수행하여 암호를 확인합니다. .