Partager via


DECRYPTBYCERT (Transact-SQL)

Déchiffre les données à l'aide de la clé privée d'un certificat.

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

Syntaxe

DecryptByCert (certificate_ID , { 'ciphertext' | @ciphertext } 
    [ , { 'cert_password' | @cert_password } ] )

Arguments

  • certificate_ID
    Identificateur d'un certificat dans la base de données. certificate_ID est de typeint.

  • ciphertext
    Chaîne de données chiffrée à l'aide de la clé publique du certificat.

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

  • cert_password
    Mot de passe utilisé pour chiffrer la clé privée du certificat. Il doit s'agir d'une chaîne Unicode.

  • @cert_password
    Variable de type nchar ou nvarchar contenant le mot de passe utilisé pour chiffrer la clé privée du certificat. Il doit s'agir d'une chaîne Unicode.

Types de retour

Variable binaire varbinary dont la taille maximale est de 8 000 octets.

Notes

Cette fonction déchiffre les données à l'aide de la clé privée d'un certificat. Les opérations de chiffrement/déchiffrement qui utilisent des clés asymétriques consomment une grande quantité de ressources. C'est pourquoi EncryptByCert et DecryptByCert ne conviennent pas pour le chiffrement régulier des données utilisateur.

Autorisations

Nécessite l'autorisation CONTROL sur le certificat.

Exemple

L'exemple suivant sélectionne des lignes de [AdventureWorks].[ProtectedData04] qui sont marquées en tant que data encrypted by certificate JanainaCert02. L'exemple déchiffre le texte chiffré à l'aide de la clé privée du certificat JanainaCert02, laquelle est préalablement déchiffrée à l'aide du mot de passe du certificat, pGFD4bb925DGvbd2439587y. Les données déchiffrées sont converties du type varbinary en type nvarchar.

SELECT convert(nvarchar(max), DecryptByCert(Cert_Id('JanainaCert02'),
    ProtectedData, N'pGFD4bb925DGvbd2439587y'))
FROM [AdventureWorks].[ProtectedData04] 
WHERE Description 
    = N'data encrypted by certificate '' JanainaCert02''';
GO