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