ENCRYPTBYASYMKEY (Transact-SQL)
Crittografa i dati con una chiave asimmetrica.
Convenzioni della sintassi Transact-SQL
Sintassi
EncryptByAsymKey ( Asym_Key_ID , { 'plaintext' | @plaintext } )
Argomenti
Asym_Key_ID
ID di una chiave asimmetrica nel database. int.cleartext
Stringa di dati che verrà crittografata con la chiave asimmetrica.@plaintext
Variabile di tipo nvarchar, char, varchar, binary, varbinary o nchar contenente dati da crittografare con la chiave asimmetrica.
Tipi restituiti
varbinary con un valore massimo di 8.000 byte.
Osservazioni
La crittografia e la decrittografia con chiave asimmetrica sono estremamente costose rispetto alla crittografia e alla decrittografia con chiave simmetrica. È consigliabile non utilizzare una chiave asimmetrica per crittografare set di dati di grandi dimensioni, ad esempio i dati utente contenuti nelle tabelle. Crittografare invece i dati mediante una chiave simmetrica avanzata e crittografare la chiave simmetrica utilizzando una chiave asimmetrica.
EncryptByAsymKey restituisce NULL se l'input supera un determinato numero di byte, a seconda dell'algoritmo. 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. Si noti che in SQL Server, sia i certificati sia le chiavi asimmetriche sono wrapper sulle chiavi RSA.
Esempi
Nell'esempio seguente viene crittografato il testo archiviato in @cleartext con la chiave asimmetrica JanainaAsymKey02. I dati crittografati vengono quindi inseriti nella tabella ProtectedData04.
INSERT INTO AdventureWorks2012.Sales.ProtectedData04
VALUES( N'Data encrypted by asymmetric key ''JanainaAsymKey02''',
EncryptByAsymKey(AsymKey_ID('JanainaAsymKey02'), @cleartext) );
GO
Vedere anche
Riferimento
DECRYPTBYASYMKEY (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL)