*문제: 컬럼 값을 암호화 해야하는 경우(단방향 암호화)
*해결: 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')
'MSSQL' 카테고리의 다른 글
[MSSQL] 데이터 타입 변환 CONVERT / CAST (0) | 2016.07.22 |
---|---|
[MSSQL] Monitoring Stored Procedure Usage 프로시저 모니터링 (0) | 2016.07.16 |
[MSSQL] 조건별로 건수합계 한번에 조회하기 SUM / CASE (0) | 2016.07.16 |
[MSSQL] sql서비스 실행시 자동 실행되는 프로시저 관련 (0) | 2016.07.16 |
[MSSQL] ldf 파일 사이즈 줄이기 또는 삭제하기 (0) | 2016.07.16 |