DECRYPTBYKEY (Transact-SQL)

Déchiffre des données à l'aide d'une clé symétrique.

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

Syntaxe

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

Arguments

  • ciphertext
    Données chiffrées avec la clé. L'argument ciphertext est de type varbinary.

  • @ciphertext
    Variable de type varbinary contenant des données qui ont été chiffrées avec la clé.

  • add_authenticator
    Indique si un authentificateur a été chiffré en même temps que le texte en clair. Doit avoir la même valeur que celle passée à EncryptByKey lors du chiffrement des données. L'argument add_authenticator est de type int.

  • authenticator
    Données à partir desquelles produire un authentificateur. Doit correspondre à la valeur fournie à EncryptByKey. L'argument authenticator est de type sysname.

  • @authenticator
    Variable contenant les données à partir desquelles l'authentificateur sera généré. Doit correspondre à la valeur qui a été fournie à EncryptByKey.

Types renvoyés

Variable binaire varbinary de 8 000 octets au maximum.

Notes

DecryptByKey utilise une clé symétrique. Cette clé symétrique doit déjà être ouverte dans la base de données. Plusieurs clés peuvent être ouvertes en même temps. Vous n'avez pas besoin d'ouvrir la clé tout de suite avant de déchiffrer le texte chiffré.

Le chiffrement et le déchiffrement symétriques sont relativement rapides et adaptés à la manipulation de grandes quantités de données.

Autorisations

Requiert l'ouverture de la clé symétrique dans la session en cours. Pour plus d'informations, consultez OPEN SYMMETRIC KEY (Transact-SQL).

Exemples

A. Déchiffrement à l'aide d'une clé symétrique

L'exemple suivant déchiffre du texte chiffré à l'aide d'une clé symétrique.

-- First, open the symmetric key with which to decrypt the data.
OPEN SYMMETRIC KEY SSN_Key_01
   DECRYPTION BY CERTIFICATE HumanResources037;
GO

-- Now list the original ID, the encrypted ID, and the 
-- decrypted ciphertext. If the decryption worked, the original
-- and the decrypted ID will match.
SELECT NationalIDNumber, EncryptedNationalID 
    AS 'Encrypted ID Number',
    CONVERT(nvarchar, DecryptByKey(EncryptedNationalID)) 
    AS 'Decrypted ID Number'
    FROM HumanResources.Employee;
GO

B. Déchiffrement à l'aide d'une clé symétrique et d'un hachage d'authentification

L'exemple suivant déchiffre des données qui ont été chiffrées à l'aide d'un authentificateur.

-- First, open the symmetric key with which to decrypt the data
OPEN SYMMETRIC KEY CreditCards_Key11
   DECRYPTION BY CERTIFICATE Sales09;
GO

-- Now list the original card number, the encrypted card number,
-- and the decrypted ciphertext. If the decryption worked, 
-- the original number will match the decrypted number.
SELECT CardNumber, CardNumber_Encrypted 
    AS 'Encrypted card number', CONVERT(nvarchar,
    DecryptByKey(CardNumber_Encrypted, 1 , 
    HashBytes('SHA1', CONVERT(varbinary, CreditCardID)))) 
    AS 'Decrypted card number' FROM Sales.CreditCard;
GO