ENCRYPTBYASYMKEY (Transact-SQL)

Si applica a: sìSQL Server (tutte le versioni supportate) Sìdatabase SQL di Azure SìIstanza gestita di SQL di Azure

Questa funzione crittografa i dati con una chiave asimmetrica.

Icona di collegamento a un articolo Convenzioni della sintassi Transact-SQL

Sintassi

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

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 e versioni precedenti, vedere Documentazione delle versioni precedenti.

Argomenti

asym_key_ID
ID di una chiave asimmetrica nel database. asym_key_ID ha un tipo di dati int.

cleartext
Stringa di dati che verrà crittografata da ENCRYPTBYASYMKEY con la chiave asimmetrica. cleartext può avere

  • binary
  • char
  • nchar
  • nvarchar
  • varbinary

o

  • varchar

come tipo di dati.

@plaintext
Variabile contenente un valore che verrà crittografato da ENCRYPTBYASYMKEY con la chiave asimmetrica. @plaintext può avere

  • binary
  • char
  • nchar
  • nvarchar
  • varbinary

o

  • varchar

come tipo di dati.

Tipi restituiti

varbinary con un valore massimo di 8.000 byte.

Osservazioni

Le operazioni di crittografia e decrittografia che usano chiavi asimmetriche usano una quantità elevata di risorse e diventano quindi molto costose rispetto alla crittografia e alla decrittografia a chiavi simmetriche. È consigliabile che gli sviluppatori evitino le operazioni di crittografia e decrittografia con chiavi asimmetriche su set di dati di grandi dimensioni, ad esempio nel caso di set di dati utente archiviati in tabelle di database. Si consiglia invece agli sviluppatori di crittografare prima i dati con una chiave simmetrica avanzata e quindi di crittografare tale chiave simmetrica con una chiave asimmetrica.

A seconda dell'algoritmo, ENCRYPTBYASYMKEY restituisce NULL se l'input supera un determinato numero di byte. Limiti specifici:

  • una chiave RSA a 512 bit può crittografare fino a 53 byte
  • una chiave a 1024 bit può crittografare fino a 117 byte
  • una chiave a 2048 bit può crittografare fino a 245 byte

In SQL Server sia i certificati che le chiavi asimmetriche fungono da wrapper sulle chiavi RSA.

Esempi

Questo esempio crittografa il testo archiviato in @cleartext con la chiave asimmetrica JanainaAsymKey02. L'istruzione inserisce i dati crittografati nella tabella ProtectedData04.

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

Vedere anche

DECRYPTBYASYMKEY (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL)
Gerarchia di crittografia