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
Переменная, содержащая данные, на основе которых формируется структура проверки подлинности.
Типы возвращаемых данных
varbinary с максимальным размером 8 000 байт.
Замечания
Для выполнения этой функции разрешения не требуются.
Возвращает значения NULL, если используется неправильная парольная фраза или данные структуры проверки подлинности.
Парольная фраза используется при создания ключа для расшифровки, который не будет сохраняемым.
Если в зашифрованный текст включалась структура проверки подлинности, оно должно быть предоставлено во время расшифровки. Если значение структуры проверки подлинности, предоставленное во время расшифровки, не соответствует значению структуры проверки подлинности, зашифрованному вместе с данными, расшифровка завершится неудачно.
Примеры
В следующем примере шифруется запись, обновленная в функции EncryptByPassPhrase.
USE AdventureWorks2008R2;
-- 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