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

См. также

Справочник

Основные понятия