MSSQL
[MSSQL] 칼럼 값 암호화 함수 HASHBYTES
평생업
2016. 7. 16. 19:07
*문제: 컬럼 값을 암호화 해야하는 경우(단방향 암호화)
*해결: HASHBYTES 함수 사용
1. 단방향 암호화라 복호화 불가
2. 암호화 값 사이의 비교 가능( 대소문자 구분 가능 )
3. 지원 알고리즘
MD2 | MD4 | MD5 | SHA | SHA1 | SHA2_256 | SHA2_512
*SHA2_256의 경우 256비트(32바이트), SHA2_512의 경우 512비트(64바이트)가 SQL Server 2012부터 SQL Server 2016에 적용됩니다.
*Step1. HASHBYTES 함수 사용
CREATE TABLE #USER_TBL
(
ID INT,
PWD VARBINARY(20)
)
INSERT INTO #USER_TBL (ID, PWD) VALUES (1, HASHBYTES('sha1', 'abc'))
INSERT INTO #USER_TBL (ID, PWD) VALUES (2, HASHBYTES('sha1', 'bcd'))
INSERT INTO #USER_TBL (ID, PWD) VALUES (3, HASHBYTES('sha1', 'Bcd'))
*Step2. 결과 확인
select *
from #USER_TBL with(nolock)
where PWD = HASHBYTES('sha1', 'Bcd')
select *
from #USER_TBL with(nolock)
where PWD = HASHBYTES('sha1', 'bcd')