Partage via


ENCRYPTBYASYMKEY (Transact-SQL)

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance

Cette fonction chiffre les données avec une clé asymétrique.

Conventions de la syntaxe Transact-SQL

Syntaxe

EncryptByAsymKey ( Asym_Key_ID , { 'plaintext' | @plaintext } )  

Arguments

asym_key_ID
ID d’une clé asymétrique dans la base de données. asym_key_ID a le type de données int.

texte clair
Chaîne de données que ENCRYPTBYASYMKEY chiffre avec la clé asymétrique. cleartext peut avoir le type de données

  • binary
  • char
  • nchar
  • nvarchar
  • varbinary

ou

  • varchar

.

@plaintext
Variable contenant une valeur que ENCRYPTBYASYMKEY chiffre avec la clé asymétrique. @plaintext peut avoir un type de données

  • binary
  • char
  • nchar
  • nvarchar
  • varbinary

ou

  • varchar

.

Types de retour

varbinary d’une taille maximale de 8 000 octets.

Notes

Les opérations de chiffrement et de déchiffrement qui utilisent des clés asymétriques consomment une grande quantité de ressources. Elles deviennent donc coûteuses par rapport au chiffrement et au déchiffrement à clé symétrique. Nous recommandons aux développeurs d’éviter les opérations de chiffrement et de déchiffrement à clé asymétrique sur les jeux de données volumineux (par exemple, les jeux de données utilisateur stockés dans des tables de base de données). Au lieu de cela, nous recommandons donc aux développeurs de commencer par chiffrer ces données avec une clé symétrique forte, puis de chiffrer cette clé symétrique avec une clé asymétrique.

En fonction de l’algorithme, ENCRYPTBYASYMKEY retourne NULL si l’entrée dépasse un certain nombre d’octets. Les limites spécifiques sont les suivantes :

  • une clé RSA de 512 bits peut chiffrer jusqu’à 53 octets
  • une clé RSA de 1 024 bits peut chiffrer jusqu’à 117 octets
  • une clé RSA de 2 048 bits peut chiffrer jusqu’à 245 octets

Dans SQL Server, les certificats et les clés asymétriques servent de wrappers sur les clés RSA.

Exemples

L’exemple suivant chiffre le texte stocké dans @cleartext avec la clé asymétrique JanainaAsymKey02. L’instruction insère les données chiffrées dans la table ProtectedData04.

INSERT INTO AdventureWorks2022.Sales.ProtectedData04   
    VALUES( N'Data encrypted by asymmetric key ''JanainaAsymKey02''',  
    EncryptByAsymKey(AsymKey_ID('JanainaAsymKey02'), @cleartext) );  
GO  

Voir aussi

DECRYPTBYASYMKEY (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL)
Hiérarchie de chiffrement