답변:
다른 곳에서 해결책을 찾았습니다.
SELECT SUBSTRING(master.dbo.fn_varbintohexstr(HashBytes('MD5', 'HelloWorld')), 3, 32)
SELECT CONVERT(NVARCHAR(32),HashBytes('MD5', 'Hello World'),2)
master.dbo.fn_varbintohexsubstring(0, HashBytes('SHA1', @input), 1, 0)대신에 결과 master.dbo.fn_varbintohexstr를 사용하십시오 substringing.
실제로 내부적으로 fn_varbintohexstr전화합니다 fn_varbintohexsubstring. 첫 번째 인수 는 접두사 fn_varbintohexsubstring로 추가할지 여부를 알려줍니다 0xF. fn_varbintohexstr전화 fn_varbintohexsubstring로 1internaly 첫 번째 인수로.
이 필요하지 않기 때문에 직접 0xF전화하십시오 fn_varbintohexsubstring.
David Knight의 말과 달리이 두 대안은 MS SQL 2008에서 동일한 응답을 반환합니다.
SELECT CONVERT(VARCHAR(32),HashBytes('MD5', 'Hello World'),2)
SELECT UPPER(master.dbo.fn_varbintohexsubstring(0, HashBytes('MD5', 'Hello World'), 1, 0))
따라서 2008 년부터 첫 번째가 더 나은 선택 인 것 같습니다.