Condividi tramite


DECRYPTBYPASSPHRASE (Transact-SQL)

Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure

Questa funzione decrittografa i dati originariamente crittografati con una passphrase.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

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

Argomenti

passphrase
Passphrase usata per generare la chiave di decrittografia.

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

'ciphertext'
Stringa di dati crittografata con la chiave. ciphertext ha un tipo dati varbinary.

@ciphertext
Variabile di tipo varbinary contenente dati crittografati con la chiave. La variabile @ciphertext ha una dimensione massima di 8.000 byte.

add_authenticator
Indica se il processo di crittografia originale includeva e crittografava un autenticatore insieme al testo non crittografato. add_authenticator ha un valore pari a 1 se il processo di crittografia ha usato un autenticatore. add_authenticator ha un tipo di dati int.

@add_authenticator
Variabile che indica se il processo di crittografia originale includeva e crittografava un autenticatore insieme al testo non crittografato. @add_authenticator ha un valore pari a 1 se il processo di crittografia ha usato un autenticatore. @add_authenticator ha un tipo di dati int.

authenticator
Dati usati come base per la generazione dell'autenticatore. authenticator ha un tipo di dati sysname.

@authenticator
Variabile contenente i dati usati come base per la generazione degli autenticatori. @authenticator ha un tipo di dati sysname.

Tipi restituiti

varbinary con un valore massimo di 8.000 byte.

Osservazioni:

DECRYPTBYPASSPHRASE non richiede autorizzazioni per l'esecuzione. DECRYPTBYPASSPHRASE restituisce NULL se riceve la passphrase non corretta o informazioni errate sull'autenticatore.

DECRYPTBYPASSPHRASE usa la passphrase per generare la chiave di decrittografia. Questa chiave di decrittografia non sarà persistente.

Se è stato incluso un autenticatore durante la crittografia del testo, DECRYPTBYPASSPHRASE deve ricevere lo stesso autenticatore per il processo di decrittografia. Se il valore dell'autenticatore fornito per il processo di decrittografia non corrisponde al valore dell'autenticatore usato originariamente per crittografare i dati, non sarà possibile completare l'operazione DECRYPTBYPASSPHRASE.

Esempi

Questo esempio decrittografa il record aggiornato in EncryptByPassPhrase.

USE AdventureWorks2022;  
-- Get the passphrase 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(varchar,  
    DecryptByPassphrase(@PassphraseEnteredByUser, CardNumber_EncryptedbyPassphrase, 1   
    , CONVERT(varbinary, CreditCardID)))  
    AS 'Decrypted card number' FROM Sales.CreditCard   
    WHERE CreditCardID = '3681';  
GO  

Vedi anche

Scelta di un algoritmo di crittografia
ENCRYPTBYPASSPHRASE (Transact-SQL)