MSSQL HASHBYTES
적용 대상
SQL Server(지원되는 모든 버전)
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
병렬 데이터 웨어하우스
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바이트로 제한됩니다.
Return Value
varbinary(최대 8000바이트)
설명
해시 값을 계산하는 다른 방법으로 CHECKSUM
또는 BINARY_CHECKSUM을 사용하는 것이 좋습니다.
SQL Server 2016(13.x)부터 MD2, MD4, MD5,
SHA 및 SHA1 알고리즘은 사용되지 않습니다.
대신에 SHA2_256 또는 SHA2_512를 사용합니다.
이전 알고리즘은 계속 작동하지만 사용 중단 이벤트가 발생합니다.
예제
변수의 해시 반환
다음 예에서는 변수 @HashThis에 저장된 nvarchar 데이터의 SHA2_256 해시를 반환합니다.
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)
'데이터베이스 > MS-SQL' 카테고리의 다른 글
MSSQL 인덱스란? (1) | 2022.12.23 |
---|---|
MS-SQL 트리거 (0) | 2022.12.22 |
sa 계정 비밀번호 변경 방법 (0) | 2022.12.20 |
MSSQL 설치형 한글 환경으로 변경 (0) | 2022.12.19 |
MS SQL Server 2019 Express 설치 방법 (0) | 2022.12.16 |
댓글