[SQL] 에서 VARCHAR 변환 HashBytes
SQL에서 VARCHAR 변환 HashBytes
나는 다음과 같은 명령을 사용하여이 작업을 수행 할 SQL 서버 2005의 문자열 값의 MD5 해시를 얻으려면 :
SELECT HashBytes('MD5', 'HelloWorld')
그러나이 VARBINARY 대신이 포함 된 VARCHAR 값을 반환합니다. 나는이 포함 된 VARCHAR I에 0x68E109F0F40CA72A15E05CC22786F8E6 변환하려고하면 얻을 하 ðô§ * à \ Â '† OAE 대신 68E109F0F40CA72A15E05CC22786F8E6의.
어떤 SQL 기반 솔루션이 있습니까?
예
해결법
-
==============================
1.나는 다른 해결책을 발견했습니다 :
나는 다른 해결책을 발견했습니다 :
SELECT SUBSTRING(master.dbo.fn_varbintohexstr(HashBytes('MD5', 'HelloWorld')), 3, 32)
-
==============================
2.
SELECT CONVERT(NVARCHAR(32),HashBytes('MD5', 'Hello World'),2)
-
==============================
3.사용 master.dbo.fn_varbintohexsubstring (0, HashBytes ( 'SHA1', @input), 1, 0) 대신 master.dbo.fn_varbintohexstr 후 결과를 substringing.
사용 master.dbo.fn_varbintohexsubstring (0, HashBytes ( 'SHA1', @input), 1, 0) 대신 master.dbo.fn_varbintohexstr 후 결과를 substringing.
사실 fn_varbintohexstr 내부적으로 fn_varbintohexsubstring 호출합니다. fn_varbintohexsubstring의 첫 번째 인수는 접두사 또는하지 0xF입니다을 추가한다는 뜻입니다. internaly 첫 번째 인수로 1 fn_varbintohexsubstring fn_varbintohexstr 전화.
당신이 0xF입니다 필요하지 않기 때문에, 호출은 직접 fn_varbintohexsubstring.
-
==============================
4.데이비드 나이트의 말씀과는 달리,이 두 가지 대안 2008 MS SQL에서 같은 응답을 반환 :
데이비드 나이트의 말씀과는 달리,이 두 가지 대안 2008 MS SQL에서 같은 응답을 반환 :
SELECT CONVERT(VARCHAR(32),HashBytes('MD5', 'Hello World'),2) SELECT UPPER(master.dbo.fn_varbintohexsubstring(0, HashBytes('MD5', 'Hello World'), 1, 0))
첫 번째는 2008 버전부터, 더 나은 선택입니다 같은 것 같습니다.
-
==============================
5.
convert(varchar(34), HASHBYTES('MD5','Hello World'),1)
(1 문자열을 16 진수로 변환)
낮추고 문자열로 문자열의 시작부터 0X 제거하려면이 변환 :
substring(lower(convert(varchar(34), HASHBYTES('MD5','Hello World'),1)),3,32)
우리가 문자열로 바이트를 변환 한 후 C #으로 무엇을 얻을 정확히 같은
-
==============================
6.이 조합 내 예에 따라 100 % 작동 문서화되지 않은 있지만, 내가 확인할 수있는 SP 변수 해시 저장 프로 시저 내에서 다음 코드를 사용하여 개인의 경험을 가진 :
이 조합 내 예에 따라 100 % 작동 문서화되지 않은 있지만, 내가 확인할 수있는 SP 변수 해시 저장 프로 시저 내에서 다음 코드를 사용하여 개인의 경험을 가진 :
@var=SUBSTRING(master.dbo.fn_varbintohexstr(HashBytes('SHA2_512', @SPvar)), 3, 128)
-
==============================
7.VARBINARY에 대한 데이터 유형을 변경하면 나를 위해 최선을 작동하는 것 같다.
VARBINARY에 대한 데이터 유형을 변경하면 나를 위해 최선을 작동하는 것 같다.
from https://stackoverflow.com/questions/2120/convert-hashbytes-to-varchar by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 나는 구조체로 데이터베이스 행을 변환하려면 어떻게 (0) | 2020.07.21 |
---|---|
[SQL] 범위 1에서 난수를 생성 - (10) (0) | 2020.07.21 |
[SQL] 어떻게 포스트 그레스의 잠금을 보유 쿼리를 감지? (0) | 2020.07.21 |
[SQL] 그랜트는 데이터베이스의 모든 저장 프로 시저에 대한 사용자의 권한을 실행? (0) | 2020.07.21 |
[SQL] 한 서버에서 다른 서버로 데이터 삽입? (0) | 2020.07.21 |