Поделиться через


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

См. также

Справочник

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