2010-08-18 4 views
3

저는 현재 ASP.NET MVC 2 사이트를 구축 중이며 비밀번호를 소금에 담기위한 옵션이 무엇인지 궁금합니다. PHP 작업을 통해 일반적으로 사용자가 등록한 시간 스탬프를 얻은 다음 SHA1을 사용하여 전체를 해시하기 전에 암호 문자열 끝에 추가했습니다. 나의 본능은이 접근법이 충분하지 않을 수 있다는 것이다.암호 해독 - 타임 스탬프를 사용하는 것보다 더 좋은 옵션이 있습니까?

어쨌든 나는 ASP.NET 사용자 관리에 처음이기 때문에 처음부터 모범 사례를 시작하는 것이 내 관심사가 될 것이라고 생각합니다. ASP.NET 웹 양식에는 내장 된 사용자 관리 기능이 있지만 MVC에 대해서는 확실하지 않습니다.

답변

4

SALT의 유일한 점은 무지개 공격을 방지하는 것입니다. 여러 사용자가 암호에 대해 동일한 해시를 사용하므로 하나의 암호를 반대로 변환하면 동일한 해시를 가진 모든 사람의 암호임을 알 수 있습니다. 동일한 암호를 사용하는 두 명의 사용자가 서로 다른 염분을 가지고있는 경우 서로 다른 해시를 가지므로 한 자릿수의 소금도이를 방지합니다.

소금은 변경되지 않으며 모든 사용자마다 다르므로 모든 값이 잘 작동합니다. 해당 필드를 업데이트하지 않으면 (비밀번호 해시를 무효화하고 로그인을 방지하는) 해당 등록의 타임 스탬프가 좋은 선택입니다.

+1

설명해 주셔서 감사합니다. 나는 항상 이런 일에 관해서 자신을 의심하는 경향이 있으므로 올바른 길을 가고 있다는 것을 알면 좋을 것입니다. –