그곰의 생활

[MSSQL] [스크랩] 데이터 암호와&복호화 본문

Server-side/SQL

[MSSQL] [스크랩] 데이터 암호와&복호화

그곰 2011. 9. 27. 16:08

출 처 : BamchiBlog 

http://blog.bamchi.com/?p=118

내부적으로 암호화를 사용 하기 위해서는 크게 두가지 방식의 함수가 존재한다.
대칭암호화 – EncryptByKey, DecryptByKey
비대칭암호화 – EncryptByAsmKey, DecryptByAsmKey
 
기본적으로 위에 함수들을 사용하여, 암호화 하는것도 여러가지가 있다.
단순히 암호를 가지고 할수도 있고, 인증서를 이용 할수도 있고…
자세한 것은 아래의 링크에서 확인하도록 하고 간단하게 대칭키 방식으로 사용 하는 예제를 확인해보자.
http://msdn2.microsoft.com/ko-kr/library/ms173744.aspx
  -- 마스터키 만들기 
-- http://msdn2.microsoft.com/ko-kr/library/ms174382.aspx 
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '1234567890'  

-- 인증서 만들기 
-- http://msdn2.microsoft.com/ko-kr/library/ms187798.aspx 
-- drop certificate SignedCertificate1 
create certificate SignedCertificate
      encryption by password = 'hari'
      with subject = 'test certificate',
      start_date = '10/31/2007',
      expiry_date = '10/31/2010';  

-- 대칭키 생성 
-- http://msdn2.microsoft.com/ko-kr/library/ms188357.aspx 
-- drop symmetric key SymMetricKey1 
create symmetric key SymMetricKey
      with algorithm = AES_128
      encryption by certificate SignedCertificate  

-- 데이터를 암호화 해서 넣을때 
-- http://msdn2.microsoft.com/ko-kr/library/ms174361.aspx 
open symmetric key SymMetricKey
      DECRYPTION by certificate SignedCertificate
      with password = 'hari' insert into test_encode(id, sid)
      values('hari200', EncryptByKey(Key_GUID('SymMetricKey'), 'encrypt' ));  

-- 데이터를 복호화 해서 가지고 올때 
-- http://msdn2.microsoft.com/ko-kr/library/ms181860.aspx 
open symmetric key SymMetricKey
      DECRYPTION by certificate SignedCertificate
      with password = 'hari' select id, convert(varchar(128), DecryptByKey(sid)) as ssid from test_encode;

 

Comments