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