DECRYPTBYASYMKEY (Transact-SQL)

Decrittografa i dati con una chiave asimmetrica.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

DecryptByAsymKey (Asym_Key_ID , { 'ciphertext' | @ciphertext } 
    [ , 'Asym_Key_Password' ] )

Argomenti

  • Asym_Key_ID
    ID di una chiave asimmetrica nel database. Asym_Key_ID è di tipo int.

  • ciphertext
    Stringa di dati che è stata crittografata con la chiave asimmetrica.

  • @ciphertext
    Variabile di tipo varbinary contenente dati crittografati con la chiave asimmetrica.

  • Asym_Key_Password
    Password utilizzata per crittografare la chiave asimmetrica nel database.

Tipi restituiti

varbinary con un valore massimo di 8.000 byte.

Osservazioni

La crittografia/decrittografia con chiave asimmetrica è molto costosa rispetto alla crittografia/decrittografia con chiave simmetrica. Non è consigliabile utilizzare una chiave asimmetrica quando si lavora con set di dati di grandi dimensioni, ad esempio i dati utente contenuti nelle tabelle.

Autorizzazioni

È richiesta l'autorizzazione CONTROL per la chiave asimmetrica.

Esempi

Nell'esempio seguente viene decrittografato il testo crittografato con la chiave asimmetrica JanainaAsymKey02, archiviata in AdventureWorks.ProtectedData04. I dati restituiti vengono decrittografati tramite la chiave asimmetrica JanainaAsymKey02, che è stata a sua volta decrittografata con la password pGFD4bb925DGvbd2439587y. Il testo decrittografato viene quindi convertito nel tipo nvarchar.

SELECT CONVERT(nvarchar(max),
    DecryptByAsymKey( AsymKey_Id('JanainaAsymKey02'), 
    ProtectedData, N'pGFD4bb925DGvbd2439587y' )) 
AS DecryptedData 
FROM [AdventureWorks].[Sales].[ProtectedData04] 
WHERE Description = N'encrypted by asym key''JanainaAsymKey02''';
GO