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

QUESTO ARGOMENTO SI APPLICA A:sìSQL Server (a partire dalla versione 2008)sìDatabase SQL di AzurenoAzure SQL Data Warehouse noParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Crittografa i dati con una chiave asimmetrica.Encrypts data with an asymmetric key.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintassiSyntax


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

ArgomentiArguments

Asym_Key_IDAsym_Key_ID
ID di una chiave asimmetrica nel database.Is the ID of an asymmetric key in the database. int.int.

cleartextcleartext
Stringa di dati che verrà crittografata con la chiave asimmetrica.Is a string of data that will be encrypted with the asymmetric key.

@plaintext
Variabile di tipo nvarchar, char, varchar, binary, varbinary o nchar contenente i dati da crittografare con la chiave asimmetrica.Is a variable of type nvarchar, char, varchar, binary, varbinary, or nchar that contains data to be encrypted with the asymmetric key.

Tipi restituitiReturn Types

varbinary con un valore massimo di 8.000 byte.varbinary with a maximum size of 8,000 bytes.

RemarksRemarks

La crittografia e la decrittografia con chiave asimmetrica sono estremamente costose rispetto alla crittografia e alla decrittografia con chiave simmetrica.Encryption and decryption with an asymmetric key is very costly compared with encryption and decryption with a symmetric key. È consigliabile non utilizzare una chiave asimmetrica per crittografare set di dati di grandi dimensioni, ad esempio i dati utente contenuti nelle tabelle.We recommend that you not encrypt large datasets, such as user data in tables, using an asymmetric key. Crittografare invece i dati mediante una chiave simmetrica avanzata e crittografare la chiave simmetrica utilizzando una chiave asimmetrica.Instead, you should encrypt the data using a strong symmetric key and encrypt the symmetric key using an asymmetric key.

EncryptByAsymKey restituisce NULL se l'input supera un determinato numero di byte, a seconda dell'algoritmo.EncryptByAsymKey return NULL if the input exceeds a certain number of bytes, depending on the algorithm. I limiti sono: una chiave RSA a 512 bit può crittografare fino a 53 byte, una chiave a 1024 bit può crittografare un massimo di 117 byte e una chiave a 2048 bit può crittografare fino a 245 byte.The limits are: a 512 bit RSA key can encrypt up to 53 bytes, a 1024 bit key can encrypt up to 117 bytes, and a 2048 bit key can encrypt up to 245 bytes. Si noti che in SQL ServerSQL Server, sia i certificati sia le chiavi asimmetriche sono wrapper sulle chiavi RSA.(Note that in SQL ServerSQL Server, both certificates and asymmetric keys are wrappers over RSA keys.)

EsempiExamples

Nell'esempio seguente viene crittografato il testo archiviato in @cleartext con la chiave asimmetrica JanainaAsymKey02.The following example encrypts the text stored in @cleartext with the asymmetric key JanainaAsymKey02. I dati crittografati vengono quindi inseriti nella tabella ProtectedData04.The encrypted data is inserted into the ProtectedData04 table.

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

Vedere ancheSee Also

DECRYPTBYASYMKEY (Transact-SQL) DECRYPTBYASYMKEY (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL) CREATE ASYMMETRIC KEY (Transact-SQL)
Gerarchia di crittografiaEncryption Hierarchy