-- 1. master key 확인
-- master key는 한개만 생성됨
select * from sys.symmetric_keys
--select * from sys.symmetric_keys where name='##MS_DatabaseMasterKey##'
--create master key encryption by password = '$EncryptionPassword12'
-- 2. 인증서 생성
-- 대칭키 생성 및 테이블 컬럼 암호화
select * from sys.certificates
--select * from sys.certificates where name=N'PasswordFieldCertificate'
--create certificate PasswordFieldCertificate with subject ='PasswordFields'
-- 3. 대칭키 생성
create symmetric key PasswordFieldSymmetricKey with algorithm = AES_256 encryption by certificate PasswordFieldCertificate
select * from ST3002
alter table ST3002 add EncryptedPasswd nvarchar(100);
-- 4. 암호화
open symmetric key PasswordFieldSymmetricKey
decryption by certificate PasswordFieldCertificate;
update st3002 set EncryptedPasswd = EncryptByKey(Key_GUID('PasswordFieldSymmetricKey'), PASSWD);
SELECT PASSWD, EncryptedPasswd FROM ST3002
-- 5. 복호화
open symmetric key PasswordFieldSymmetricKey
decryption by certificate PasswordFieldCertificate;
SELECT PASSWD,
EncryptedPasswd,
convert(nvarchar,DecryptByKey(EncryptedPasswd))
--convert(nvarchar,DecryptByKey(EncryptedPasswd2))
FROM ST3002
-- test
select convert(varchar, decryptbykey(encryptbykey(key_guid('PasswordFieldSymmetricKey'),'varchar'))),
convert(nvarchar, decryptbykey(encryptbykey(key_guid('PasswordFieldSymmetricKey'),'varchar'))),
convert(varchar, decryptbykey(encryptbykey(key_guid('PasswordFieldSymmetricKey'),N'Nvarchar'))),
convert(nvarchar, decryptbykey(encryptbykey(key_guid('PasswordFieldSymmetricKey'),N'Nvarchar')))
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
12 | mysql table 전체 삭제 | 하서기 | 2020.03.19 | 1507 |
11 | [MySQL] 인덱스 정리 및 팁 | 하서기 | 2017.11.06 | 1637 |
10 | [MySQL] MySQL 테이블 수정 | 하서기 | 2017.09.04 | 1617 |
9 | [MySQL] mysql max_allowed_packet 설정 | 하서기 | 2017.08.11 | 1079 |
8 | 데이터베이스 전체 테이블 카운트 조회 | 하서기 | 2017.04.11 | 4323 |
7 | 프로시저 조회 | 하서기 | 2017.02.07 | 2035 |
» | 필드 암호화 | 하서기 | 2017.02.07 | 901 |
5 | 실행되었던 쿼리 확인 | 하서기 | 2016.12.19 | 683 |
4 | mysqldump 의 사용법 | 하서기 | 2016.11.18 | 1082 |
3 | 사용자 확인, 사용자 추가 | 하서기 | 2016.11.17 | 1945 |
2 | MySQL 덤프(dump) 그리고 복원(Restore) | 하서기 | 2016.11.17 | 1925 |
1 | MySql DB/테이블 사이즈 확인을 위한 쿼리 | 하서기 | 2016.11.17 | 832 |