DECRYPTBYPASSPHRASE (Transact-SQL)

Esegue la decrittografia dei dati crittografati con una passphrase.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

DecryptByPassPhrase ( { 'passphrase' | @passphrase } 
        , { 'ciphertext' | @ciphertext }
    [ , { add_authenticator | @add_authenticator }
        , { authenticator | @authenticator } ] ) 

Argomenti

  • passphrase
    Passphrase che verrà utilizzata per generare la chiave per la decrittografia.

  • @passphrase
    Variabile di tipo nvarchar, char, varchar o nchar contenente la passphrase da utilizzare per generare la chiave per la decrittografia.

  • 'ciphertext'
    Testo crittografato da decrittografare.

  • @ciphertext
    Variabile di tipo varbinary contenente il testo crittografato. Le dimensioni massime sono pari a 8.000 byte.

  • add_authenticator
    Indica se un autenticatore è stato crittografato insieme al testo normale. Il valore è 1 se è stato utilizzato un autenticatore. int.

  • @add_authenticator
    Indica se un autenticatore è stato crittografato insieme al testo normale. Il valore è 1 se è stato utilizzato un autenticatore. int.

  • authenticator
    Dati relativi all'autenticatore. sysname.

  • @authenticator
    Variabile contenente i dati da cui derivare un autenticatore.

Tipi restituiti

varbinary con un valore massimo di 8.000 byte.

Osservazioni

Non sono necessarie autorizzazioni per eseguire questa funzione.

Restituisce NULL se viene utilizzata una passphrase non corretta o informazioni errate sull'autenticatore.

La passphrase viene utilizzata per generare una chiave di decrittografia, che non sarà persistente.

Se è stato incluso un autenticatore al momento della crittografia del testo non crittografato, l'autenticatore deve essere incluso anche in fase di decrittografia. Se il valore dell'autenticatore fornito in fase di decrittografia non corrisponde al valore dell'autenticatore crittografato con i dati, non sarà possibile completare la decrittografia.

Esempi

Nell'esempio seguente viene decrittografato il record aggiornato in EncryptByPassPhrase.

USE AdventureWorks;
-- Get the pass phrase from the user.
DECLARE @PassphraseEnteredByUser nvarchar(128);
SET @PassphraseEnteredByUser 
= 'A little learning is a dangerous thing!';

-- Decrypt the encrypted record.
SELECT CardNumber, CardNumber_EncryptedbyPassphrase 
    AS 'Encrypted card number', CONVERT(nvarchar,
    DecryptByPassphrase(@PassphraseEnteredByUser, CardNumber_EncryptedbyPassphrase, 1 
    , CONVERT(varbinary, CreditCardID)))
    AS 'Decrypted card number' FROM Sales.CreditCard 
    WHERE CreditCardID = '3681';
GO