본문 바로가기
개발/etc

[MSSQL] 데이터 암호화/복호화

by HW프로젝트 2025. 12. 10.

MSSQL 에서 데이터를 암호화/복호화를 해보려고 한다.

함수는 아래와 같다

암호화 : ENCRYPTBYKEY
복호화 : DECRYPTBYKEY

 

1. 대칭키, 인증서 생성

-- 대칭 키 생성
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'EncPassword';
CREATE CERTIFICATE CertTest WITH SUBJECT = 'SymmetricKey';

-- 대칭 키 생성 및 암호화
CREATE SYMMETRIC KEY SymmetricKeyTest
WITH ALGORITHM = AES_256
ENCRYPTION BY CERTIFICATE CertTest;

 

2. 암호화 / 복호화

-- 암호화된 데이터 출력
DECLARE @encryptedData VARBINARY(MAX) = ENCRYPTBYKEY(KEY_GUID('SymmetricKeyTest'), 'encData');
SELECT @encryptedData;

-- 복호화된 데이터 출력
DECLARE @decryptedData NVARCHAR(MAX) = CAST(DECRYPTBYKEY(@decryptedData) AS NVARCHAR(MAX));
SELECT @decryptedData;

 

이제 암호화 / 복호화 하여 데이터를 저장, 조회 할 수 있다.