2014-05-14 4 views
-1

내가 SQL을 이런 식으로HASHBYTES() 함수의 사용은

Select CONVERT(VARCHAR(MAX), HASHBYTES('md5', 'demo'), 2) 

처럼 해독하는 데 사용되는이 방법 Select HASHBYTES('md5', 'demo')와 코드와 같은 문자열을 암호화하는 MD5를 사용 HASHBYTES()를 소개 Server2008의 것을 알게 Server2008의 하지만이 두 번째 select 문을 시도하면 암호화 된 형식으로 값이 표시됩니다. 데모를 텍스트로 해독하는 방법. 덕분에

+0

일반적으로 'MD5' 알고리즘은 대칭 적이 아닙니다. –

답변

2

그것은 일방 통행 해싱입니다. 당신은 원래 형태로 돌아갈 수 없습니다. 해시를 해독하는 것은 불가능합니다. 그래도 목적은 무엇입니까? 그냥 다른과 함께이 해시 값을 비교하려는 경우

당신은

IF HASHBYTES('md5', 'demo') = HASHBYTES('md5',@param) 
    PRINT 'Match!'; 

편집과 같은 작업을 수행 할 수 있습니다 :

해싱 전혀 원래 값을 암호화하지 않습니다. 대신 해싱은 단방향 수학 알고리즘을 원래 값에 적용하여 이진 값을 생성합니다.

주로 비밀번호 저장에 사용됩니다. 따라서 암호는 해시 형식으로 저장됩니다. 사용자가 신임장을 제공하면 (ID/비밀번호); 저장된 암호를 해독하지 않습니다. 대신 사용자가 제공 한 암호는 동일한 알고리즘으로 해시되며 해시 값은 저장된 해시 값과 비교됩니다 (위의 코드 예 참조).

+0

md5로 암호화 한 후 해독하고 싶습니다 .... 가능합니까? – Thomas

+0

@ 토마스, 짧은 대답은 "아니오"입니다. 그것은 해시 값이지 암호화가 아닙니다. 어떻게 해독하겠습니까. – Rahul

+0

@ 토마스에 대한 설명은 수정 된 답변을 참조하십시오. 그것이 도움이된다면 답을 받아 들여야한다는 것을 잊지 마십시오. – Rahul