DECRYPTBYCERT (Transact-SQL)
Déchiffre les données à l'aide de la clé privée d'un certificat.
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