Condividi tramite


ENCRYPTBYASYMKEY (Transact-SQL)

Crittografa i dati con una chiave asimmetrica.

Icona di collegamento a un argomento 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)

Concetti

Gerarchia di crittografia