ENCRYPTBYASYMKEY (Transact-SQL)

Chiffre les données avec une clé asymétrique.

Icône Lien de rubrique 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. int.

  • cleartext
    Chaîne de données qui seront chiffrées avec la clé asymétrique.

  • @plaintext
    Variable de type nvarchar, char, varchar, binary, varbinary ou nchar qui contient les données devant être chiffrées avec la clé asymétrique.

Type des valeurs renvoyées

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

Notes

Le chiffrement et le déchiffrement avec une clé asymétrique sont coûteux par rapport au chiffrement et au déchiffrement avec une clé symétrique. Il est déconseillé d'utiliser une clé asymétrique pour chiffrer des ensembles de données volumineux ; par exemple, des données utilisateur issues de tables. Utilisez plutôt une clé symétrique forte pour chiffrer les données, et chiffrez la clé symétrique à l'aide d'une clé asymétrique.

EncryptByAsymKey retourne NULL si l'entrée dépasse un certain nombre d'octets, selon l'algorithme. Les limites sont : une clé RSA 512 bits peut chiffrer jusqu'à 53 octets, une clé 1024 bits peut chiffrer jusqu'à 117 octets, et une clé 2048 bits peut chiffrer jusqu'à 245 octets. (Notez que dans SQL Server, les certificats et les clés asymétriques sont des wrappers de clés RSA.)

Exemples

L'exemple suivant chiffre le texte stocké dans @cleartext à l'aide de la clé asymétrique JanainaAsymKey02. Les données chiffrées sont insérées dans la table ProtectedData04.

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

Voir aussi

Référence

DECRYPTBYASYMKEY (Transact-SQL)

CREATE ASYMMETRIC KEY (Transact-SQL)

Concepts

Hiérarchie de chiffrement