ENCRYPTBYASYMKEY (Transact-SQL)ENCRYPTBYASYMKEY (Transact-SQL)

S’APPLIQUE À : ouiSQL Server ouiAzure SQL Database nonAzure Synapse Analytics (SQL DW) nonParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Cette fonction chiffre les données avec une clé asymétrique.This function encrypts data with an asymmetric key.

Icône Lien de l’article Conventions de la syntaxe Transact-SQLArticle link icon Transact-SQL Syntax Conventions

SyntaxeSyntax

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

ArgumentsArguments

asym_key_IDasym_key_ID
ID d’une clé asymétrique dans la base de données.The ID of an asymmetric key in the database. asym_key_ID a le type de données int.asym_key_ID has an int data type.

cleartextcleartext
Chaîne de données que ENCRYPTBYASYMKEY chiffre avec la clé asymétrique.A string of data that ENCRYPTBYASYMKEY will encrypt with the asymmetric key. cleartext peut avoir le type de donnéescleartext can have a

  • binairebinary
  • charchar
  • ncharnchar
  • nvarcharnvarchar
  • varbinaryvarbinary

ou Gestionnaire de configurationor

  • varcharvarchar

.data type.

@plaintext@plaintext
Variable contenant une valeur que ENCRYPTBYASYMKEY chiffre avec la clé asymétrique.A variable holding a value that ENCRYPTBYASYMKEY will encrypt with the asymmetric key. @plaintext peut avoir un type de données@plaintext can have a

  • binairebinary
  • charchar
  • ncharnchar
  • nvarcharnvarchar
  • varbinaryvarbinary

ou Gestionnaire de configurationor

  • varcharvarchar

.data type.

Types de retourReturn Types

varbinary d’une taille maximale de 8 000 octets.varbinary, with a maximum size of 8,000 bytes.

NotesRemarks

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.Encryption and decryption operations that use asymmetric keys consume significant resources, and so become expensive compared with symmetric key encryption and decryption. 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).We suggest that developers avoid asymmetric key encryption and decryption operations on large datasets - for example, user data datasets stored in database tables. 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.Instead, we suggest that developers first encrypt that data with a strong symmetric key, and then encrypt that symmetric key with an asymmetric key.

En fonction de l’algorithme, ENCRYPTBYASYMKEY retourne NULL si l’entrée dépasse un certain nombre d’octets.Depending on the algorithm, ENCRYPTBYASYMKEY returns NULL if the input exceeds a certain number of bytes. Les limites spécifiques sont les suivantes :The specific limits:

  • une clé RSA de 512 bits peut chiffrer jusqu’à 53 octetsa 512-bit RSA key can encrypt up to 53 bytes
  • une clé RSA de 1 024 bits peut chiffrer jusqu’à 117 octetsa 1024-bit key can encrypt up to 117 bytes
  • une clé RSA de 2 048 bits peut chiffrer jusqu’à 245 octetsa 2048-bit key can encrypt up to 245 bytes

Dans SQL ServerSQL Server, les certificats et les clés asymétriques servent de wrappers sur les clés RSA.In SQL ServerSQL Server, both certificates and asymmetric keys serve as wrappers over RSA keys.

ExemplesExamples

L’exemple suivant chiffre le texte stocké dans @cleartext avec la clé asymétrique JanainaAsymKey02.This example encrypts the text stored in @cleartext with the asymmetric key JanainaAsymKey02. L’instruction insère les données chiffrées dans la table ProtectedData04.The statement inserts the encrypted data into the ProtectedData04 table.

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

Voir aussiSee Also

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