암호화 / 복호화

2013. 11. 12. 08:59

[mssql]데이터베이스 암호화


***설명
데이터베이스 암호화

SQL 서버 2000까지의 암호화
- 문서화되지 않은 PWDEncrypt 함수로 복호화 되지 않는 단 방향 해시 함수로, 해당 값의 비교를 위한 PWDCompare 함수를 따로 지원한다.
DECLARE @Ciphertext varbinary(20);
DECLARE @Plaintext varchar(20);
SET @Plaintext = 'Hello'
set @Ciphertext = PWDENCRYPT(@Plaintext)

SELECT [원문] = @Plaintext , [암호문] = @ciphertext

SQL 서버 2005 암호화 방식
- 내장된 암호화 함수가 제공되고 이 함수 (MD2,MD4,MD5SHA,SHA1) 지원 (단방향 해시)
DECLARE @Ciphertext varbinary(20);
DECLARE @Plaintext varchar(20);
SET @Plaintext = 'Hello'
set @Ciphertext = HashBytes('SHA1',@Plaintext)

SELECT [원문] = @Plaintext , [암호문] = @ciphertext

ENCRYPTBYPASSPHRASE 패스워드를 가지고서 키를 암호화 하는 방식
----------
DecryptByPassPhrase(
                       { 'passphrase' | @passphrase } 
                       , { 'ciphertext' | @ciphertext }
                       [ 
                          , { add_authenticator | @add_authenticator }
                          , { authenticator | @authenticator } 
                       ]                   
                   ) 
passphrase  암호 해독을 위한 키를 생성하는 데 사용할 전달 구입니다. @passphrase 암호 해독을 위한 키를 생성하는 데 사용할 전달 구가 들어 있는 nvarchar, char, wchar, varchar 또는 nchar 형식의 변수입니다. 
ciphertext  암호를 해독할 암호화 텍스트입니다. 
@ciphertext 암호화 텍스트가 들어 있는 varbinary 형식의 변수입니다. 최대 크기는 8,000바이트입니다.
add_authenticator  인증자가 일반 텍스트와 함께 암호화되었는지 여부를 나타냅니다. 인증자를 사용한 경우 정수 1입니다.
@add_authenticator 인증자가 일반 텍스트와 함께 암호화되었는지 여부를 나타냅니다. 인증자를 사용한 경우 정수 1입니다.
authenticator      인증자 데이터입니다.
@authenticator     인증자가 파생될 데이터를 포함하는 변수입니다.
---------------------
DECLARE @CreditCardNo varchar(20);
SET @Creditcardno = '1234567890'
DECLARE @PASS nvarchar(128);
SET @PASS = '암호화문자입니다.'

DECLARE @Enctext varbinary(8000)
set @Enctext = EncryptByPassPhrase(@Pass,@creditCardNo)

DECLARE @Dectext varbinary(8000)
set @Dectext = DecryptByPassPhrase(@Pass,@Enctext)

SELECT @creditCardNo 카드번호,
  @PASS 암호화문자,
  @Enctext 암호화,
  @Dectext,
  CONVERT(VARCHAR,@Dectext) 복호화

복호화에 반환되는 데이터는 VarBinary 형태임에 주의하여 문자열로 변환 하여야 한다.

SQL SERVER 2008
TDE (Transparent Data Encrypt)
http://msdn.microsoft.com/ko-kr/library/bb934049.aspx
http://optimizer.tistory.com/48






출처 : http://notice.ooci.net/block/?id=aStudy01&no=334

Posted by 회사원Z
:

카테고리

More More* (98)
iPHONE* (7)
Power Builder* (31)
HTML5* (2)
CSS3* (1)
jQuery & JavaScript* (17)
ASP* (20)
MSSQL* (10)
ETC* (10)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

달력

«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

글 보관함