DecryptByPassPhrase(Transact-SQL)

전달 구로 암호화된 데이터의 암호를 해독합니다.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

DecryptByPassPhrase (
                       { 'passphrase' | @passphrase } 
                                              , { 'ciphertext' | @ciphertext }
                       [ 
                                                    , { add_authenticator | @add_authenticator }
                                                    , { authenticator | @authenticator } 
                       ]                   
                                        ) 

인수

  • passphrase
    암호 해독을 위한 키를 생성하는 데 사용할 전달 구입니다.
  • @passphrase
    암호 해독을 위한 키를 생성하는 데 사용될 전달 구가 들어 있는 nvarchar, char, varchar 또는 nchar 유형의 변수입니다.
  • 'ciphertext'
    암호를 해독할 암호화 텍스트입니다.
  • @ciphertext
    암호화 텍스트가 들어 있는 varbinary 유형의 변수입니다. 최대 크기는 8,000바이트입니다.
  • add_authenticator
    인증자가 일반 텍스트와 함께 암호화되었는지 여부를 나타냅니다. 인증자가 사용된 경우 1이 됩니다. int.
  • @add_authenticator
    인증자가 일반 텍스트와 함께 암호화되었는지 여부를 나타냅니다. 인증자가 사용된 경우 1이 됩니다. int.
  • authenticator
    인증자 데이터입니다. sysname.
  • @authenticator
    인증자가 파생될 데이터를 포함하는 변수입니다.

반환 유형

최대 크기가 8,000바이트인 varbinary

주의

이 함수를 실행하는 데 필요한 사용 권한은 없습니다.

잘못된 전달 구나 인증자 정보를 사용하면 NULL을 반환합니다.

전달 구는 암호 해독 키를 생성하는 데 사용되며 암호 해독 키는 지속형이 아닙니다.

암호화 텍스트를 생성할 때 인증자를 포함한 경우 암호 해독 시 인증자를 제공해야 합니다. 암호 해독 시 제공한 인증자 값이 데이터를 암호화한 인증자 값과 일치하지 않으면 암호 해독은 실패합니다.

다음 예에서는 EncryptByPassPhrase에서 업데이트된 레코드의 암호를 해독합니다.

USE AdventureWorks;
-- Get the pass phrase from the user.
DECLARE @PassphraseEnteredByUser nvarchar(128);
SET @PassphraseEnteredByUser 
= 'A little learning is a dangerous thing!';

-- Decrypt the encrypted record.
SELECT CardNumber, CardNumber_EncryptedbyPassphrase 
    AS 'Encrypted card number', CONVERT(nvarchar,
    DecryptByPassphrase(@PassphraseEnteredByUser, CardNumber_EncryptedbyPassphrase, 1 
    , CONVERT(varbinary, CreditCardID)))
    AS 'Decrypted card number' FROM Sales.CreditCard 
    WHERE CreditCardID = '3681';
GO

참고 항목

참조

EncryptByPassPhrase(Transact-SQL)

관련 자료

암호화 알고리즘 선택

도움말 및 정보

SQL Server 2005 지원 받기