DECRYPTBYPASSPHRASE(Transact-SQL)
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance
이 함수는 원래 암호를 사용하여 암호화된 데이터를 해독합니다.
구문
DecryptByPassPhrase ( { 'passphrase' | @passphrase }
, { 'ciphertext' | @ciphertext }
[ , { add_authenticator | @add_authenticator }
, { authenticator | @authenticator } ] )
인수
passphrase
암호 해독 키를 생성하는 데 사용된 암호입니다.
@passphrase
암호 해독 키를 생성하는 데 사용된 암호를 포함하는 char, nchar, nvarchar 또는 varchar 형식의 변수입니다.
'ciphertext'
키로 암호화된 데이터 문자열입니다. ciphertext는 varbinary 데이터 형식을 갖습니다.
@ciphertext
키로 암호화된 데이터를 포함하는 varbinary 형식의 변수입니다. @ciphertext 변수의 최대 크기는 8,000바이트입니다.
add_authenticator
원래 암호화 프로세스가 포함되고 암호화된 인증자가 일반 텍스트를 사용하는지 여부를 나타냅니다. add_authenticator는 암호화 프로세스가 인증자를 사용한 경우 1의 값을 갖습니다. add_authenticator는 int 데이터 형식을 갖습니다.
@add_authenticator
원래 암호화 프로세스가 포함되고 암호화된 인증자가 일반 텍스트를 사용하는지 여부를 나타내는 변수입니다. @add_authenticator는 암호화 프로세스가 인증자를 사용한 경우 1의 값을 갖습니다. @add_authenticator는 int 데이터 형식을 갖습니다.
authenticator
인증자의 생성에 대한 기준으로 사용되는 데이터입니다. authenticator는 sysname 데이터 형식을 갖습니다.
@authenticator
인증자의 생성에 대한 기준으로 사용된 데이터를 포함하는 변수입니다. @authenticator는 sysname 데이터 형식을 갖습니다.
반환 형식
최대 크기가 8,000바이트인 varbinary입니다.
설명
DECRYPTBYPASSPHRASE
는 실행에 대한 권한이 필요없습니다. DECRYPTBYPASSPHRASE
는 잘못된 암호나 잘못된 인증자 정보를 수신하는 경우 NULL을 반환합니다.
DECRYPTBYPASSPHRASE
는 암호를 사용하여 암호 해독 키를 생성합니다. 이 암호 해독 키는 유지되지 않습니다.
암호 텍스트 암호화의 경우 인증자가 포함되었다면 DECRYPTBYPASSPHRASE
는 암호 해독 프로세스에 대한 해당 동일 인증자를 받아야 합니다. 암호 해독 프로세스에 제공된 인증자 값이 원래 데이터를 암호화하는 데 사용된 인증자 값과 일치하지 않으면 DECRYPTBYPASSPHRASE
작업은 실패합니다.
예제
이 예에서는 EncryptByPassPhrase에서 업데이트된 레코드의 암호를 해독합니다.
USE AdventureWorks2022;
-- Get the passphrase 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(varchar,
DecryptByPassphrase(@PassphraseEnteredByUser, CardNumber_EncryptedbyPassphrase, 1
, CONVERT(varbinary, CreditCardID)))
AS 'Decrypted card number' FROM Sales.CreditCard
WHERE CreditCardID = '3681';
GO