ENCRYPTBYASYMKEY (Transact-SQL)
Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure
Questa funzione crittografa i dati con una chiave asimmetrica.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
EncryptByAsymKey ( Asym_Key_ID , { 'plaintext' | @plaintext } )
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
or
- 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
or
- 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 AdventureWorks2022.Sales.ProtectedData04
VALUES( N'Data encrypted by asymmetric key ''JanainaAsymKey02''',
EncryptByAsymKey(AsymKey_ID('JanainaAsymKey02'), @cleartext) );
GO
Vedi anche
DECRYPTBYASYMKEY (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL)
Gerarchia di crittografia