Partager via


DECRYPTBYPASSPHRASE (Transact-SQL)

Déchiffre des données chiffrées par une expression relative au mot de passe.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

DecryptByPassPhrase ( { 'passphrase' | @passphrase } 
        , { 'ciphertext' | @ciphertext }
    [ , { add_authenticator | @add_authenticator }
        , { authenticator | @authenticator } ] ) 

Arguments

  • passphrase
    Expression relative au mot de passe utilisée pour générer la clé de déchiffrement.

  • @passphrase
    Variable de type nvarchar, char, varchar ou nchar qui contient l'expression relative au mot de passe qui est utilisée pour générer la clé de déchiffrement.

  • 'ciphertext'
    Texte à déchiffrer.

  • @ciphertext
    Variable de type varbinary qui contient le texte chiffré. La taille maximale est de 8 000 octets.

  • add_authenticator
    Indique si un authentificateur a été chiffré en même temps que le texte en clair. La valeur est 1 si un authentificateur a été utilisé. int.

  • @add_authenticator
    Indique si un authentificateur a été chiffré en même temps que le texte en clair. La valeur est 1 si un authentificateur a été utilisé. int.

  • authenticator
    Données de l'authentificateur. sysname.

  • @authenticator
    Variable contenant les données à partir desquelles l'authentificateur sera dérivé.

Types des valeurs renvoyées

Variable binaire varbinary de 8 000 octets au maximum.

Notes

Aucune autorisation n'est requise pour cette fonction.

Renvoie NULL si les informations de l'authentificateur ou de l'expression relative au mot de passe sont incorrectes.

L'expression relative au mot de passe est utilisée pour générer une clé de déchiffrement qui n'est pas persistante.

Si un authentificateur est inclus lorsque le texte est chiffré, il doit être fourni au moment du déchiffrement. Si la valeur de l'authentificateur fournie au moment du déchiffrement ne correspond pas à la valeur de l'authentificateur chiffrée avec les données, le déchiffrement échoue.

Exemples

L'exemple suivant déchiffre l'enregistrement mis à jour dans 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