*문제: 컬럼 값을 암호화 해야하는 경우(단방향 암호화)

*해결: 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')





+ Recent posts