적용 대상:SQL 서버
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Microsoft Fabric
의 SQL 분석 엔드포인트Microsoft Fabric
의 웨어하우스Microsoft Fabric의 SQL 데이터베이스
SQL Server에서 해당 입력의 MD2, MD4, MD5, SHA, SHA1 또는 SHA2 해시를 반환합니다.
구문
HASHBYTES ( '<algorithm>', { @input | 'input' } )
<algorithm>::= MD2 | MD4 | MD5 | SHA | SHA1 | SHA2_256 | SHA2_512
인수
<algorithm>
입력 해시에 사용할 해싱 알고리즘을 나타냅니다. 필수 인수이며 기본값은 없습니다. 작은따옴표가 필요합니다. SQL Server 2016(13.x)부터 SHA2_256 및 SHA2_512 이외의 알고리즘은 사용되지 않습니다.
@input
해시할 데이터를 포함하는 변수를 지정합니다.
@input은 varchar, nvarchar 또는 varbinary입니다.
'input'
해시할 문자 또는 이진 문자열로 계산되는 식을 지정합니다.
출력은 알고리즘 표준을 준수하며, MD2, MD4 및 MD5의 경우 128비트(16바이트), SHA 및 SHA1의 경우 160비트(20바이트) 그리고 SHA2_256의 경우 256비트(32바이트), SHA2_512의 경우 512비트(64바이트)입니다.
적용 대상: SQL Server 2012(11.x) 이상
SQL Server 2014(12.x) 이하 버전에 허용되는 입력 값은 8000바이트로 제한됩니다.
반환 값
varbinary(최대 8000바이트)
설명
해시 값을 계산하는 다른 방법으로 CHECKSUM 또는 BINARY_CHECKSUM을 사용하는 것이 좋습니다.
SQL Server 2016(13.x)부터 MD2, MD4, MD5, SHA 및 SHA1 알고리즘은 사용되지 않습니다. 대신에 SHA2_256 또는 SHA2_512를 사용합니다. 이전 알고리즘은 계속 작동하지만 사용 중단 이벤트가 발생합니다.
예제
변수의 해시 반환
다음 예에서는 변수 SHA2_256에 저장된 nvarchar 데이터의 @HashThis 해시를 반환합니다.
DECLARE @HashThis NVARCHAR(32);
SET @HashThis = CONVERT(NVARCHAR(32),'dslfdkjLK85kldhnv$n000#knf');
SELECT HASHBYTES('SHA2_256', @HashThis);
테이블 열의 해시 반환
다음 예제에서는 c1 테이블의 Test1 열에 있는 값의 SHA2_256 해시를 반환합니다.
CREATE TABLE dbo.Test1 (c1 NVARCHAR(32));
INSERT dbo.Test1 VALUES ('This is a test.');
INSERT dbo.Test1 VALUES ('This is test 2.');
SELECT HASHBYTES('SHA2_256', c1) FROM dbo.Test1;
결과 집합은 다음과 같습니다.
-------------------------------------------
0x741238C01D9DB821CF171BF61D72260B998F7C7881D90091099945E0B9E0C2E3
0x91DDCC41B761ACA928C62F7B0DA61DC763255E8247E0BD8DCE6B22205197154D
(2 row(s) affected)