DECRYPTBYPASSPHRASE (Transact-SQL)
Esegue la decrittografia dei dati crittografati con una passphrase.
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
Vedere anche