문제

내 ASP.NET 웹 앱에서 SHA512로 사용자 비밀번호를 해시합니다.

너무 많은 일과 검색에도 불구하고 나는 데이터베이스 (SQL2005)에 어떻게 저장 해야하는지 불분명합니다. 아래 코드는 내가 해시를 문자열로 만드는 방법의 기본 사항을 보여주고 현재 그것을 현재 일관되게 생성 된 길이 인 것처럼 보이는 숯 (88) 열로 데이터베이스

그것을 문자열로 잡고있는 가장 좋은 방법 인 경우, SHA512에서 항상 88 숯이 될 것입니다 (Google에서 기괴한 것들을 보았을 때)?

 Dim byteInput As Byte() = Encoding.UTF8.GetBytes(sSalt & sInput)
 Dim hash As HashAlgorithm = New SHA512Managed()
 Dim sInsertToDatabase As String =  Convert.ToBase64String(hash.ComputeHash(byteInput))
도움이 되었습니까?

해결책

SHA512 출력 512 비트 또는 64 바이트. 원하는 경우 64 바이트를 이진 열에 저장할 수 있습니다.

응용 프로그램 밖에서 해시를 처리하려면 지금하고있는 것처럼 Base64 문자열을 저장하는 것이 더 편합니다. Base64는 약 33%의 일정한 오버 헤드를 추가하므로 문자열이 항상 88 숯이 될 것으로 예상 할 수 있습니다.

즉, Asp.net은 다음에 있습니다 상당히 포괄적 인 인증 시스템 내장, 사용해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top