DECRYPTBYPASSPHRASE(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