└──────
CREATE CERTIFICATE Cert_JUMIN
ENCRYPTION BY PASSWORD =
'P@ssw0rd'
WITH SUBJECT = '주민번호 인증서',
EXPIRY_DATE = '2010/12/31'
GO
CREATE SYMMETRIC KEY JUMIN_KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY CERTIFICATE Cert_JUMIN
GO
OPEN SYMMETRIC KEY JUMIN_KEY
DECRYPTION BY CERTIFICATE Cert_JUMIN
WITH PASSWORD =
'P@ssw0rd'
GO
CREATE TABLE 고객 (고객번호 INT IDENTITY PRIMARY KEY,
고객이름 VARCHAR(20) NOT NULL,
주민번호 VARBINARY(128) )
GO
INSERT INTO 고객(고객이름, 주민번호)
VALUES ( '박태환', ENCRYPTBYKEY(Key_GUID('JUMIN_KEY'), '890927-0000001'))
GO
SELECT * FROM 고객
GO
SELECT 고객번호, 고객이름,
CONVERT (VARCHAR, DECRYPTBYKEY(주민번호)) AS '주민번호'
FROM 고객
GO
CREATE TABLE 고객2 (고객번호 INT IDENTITY PRIMARY KEY,
고객이름 VARCHAR(20) NOT NULL,
주민번호 CHAR(14))
GO
INSERT INTO 고객2(고객이름, 주민번호) VALUES ( '박태환', '890927-0000001')
GO
SELECT * FROM 고객2
GO
ALTER TABLE 고객2
ADD 주민번호암호 VARBINARY(128)
GO
UPDATE 고객2
SET 주민번호암호
= ENCRYPTBYKEY(Key_GUID('JUMIN_KEY'), 주민번호); -- 암호화
GO
SELECT * FROM 고객2
GO
ALTER TABLE 고객2 DROP COLUMN 주민번호
EXEC SP_RENAME '고객2.주민번호암호', '주민번호', 'COLUMN'
GO
SELECT * FROM 고객2
GO
SELECT 고객번호, 고객이름, 주민번호,
CONVERT (VARCHAR, DECRYPTBYKEY(주민번호)) AS '주민번호'
FROM 고객2
GO
CLOSE SYMMETRIC KEY JUMIN_KEY
--- 새로운 세션
SELECT 고객번호, 고객이름,
CONVERT (VARCHAR, DECRYPTBYKEY(주민번호)) AS '주민번호'
FROM 고객2
GO
OPEN SYMMETRIC KEY JUMIN_KEY
DECRYPTION BY CERTIFICATE Cert_JUMIN -- 복구
WITH PASSWORD =
'P@ssw0rd'
GO
SELECT 고객번호, 고객이름,
CONVERT (VARCHAR, DECRYPTBYKEY(주민번호)) AS '주민번호'
FROM 고객2
댓글 영역