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 qui ont été chiffrées avec la clé. 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 être la même valeur que celle transmise à EncryptByKey lors du chiffrement des données. int.
  • authenticator
    Données à partir desquelles produire un authentificateur. Doit correspondre à la valeur qui a été fournie à EncryptByKey. sysname.
  • @authenticator
    Variable contenant les données à partir desquelles l'authentificateur sera généré. Doit correspondre à la valeur qui a été fournie à EncryptByKey.

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.

Types renvoyés

Variable binaire varbinary de 8 000 octets au maximum.

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

Voir aussi

Référence

EncryptByKey (Transact-SQL)
CREATE SYMMETRIC KEY (Transact-SQL)
ALTER SYMMETRIC KEY (Transact-SQL)
DROP SYMMETRIC KEY (Transact-SQL)

Autres ressources

Hiérarchie de chiffrement
Choix d'un algorithme de chiffrement

Aide et Informations

Assistance sur SQL Server 2005