DECRYPTBYPASSPHRASE (Transact-SQL)

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance

Cette fonction déchiffre les données chiffrées à l’origine avec une phrase secrète.

Conventions de la syntaxe Transact-SQL

Syntaxe

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

Arguments

passphrase
Phrase secrète utilisée pour générer la clé de déchiffrement.

@passphrase
Variable de type char, nchar, nvarcharou varchar contenant la phrase secrète utilisée pour générer la clé de déchiffrement.

'ciphertext'
Chaîne de données chiffrées avec la clé. ciphertext a le type de données varbinary.

@ciphertext
Variable de type varbinary contenant des données chiffrées avec la clé. La variable@ciphertext a une taille maximale de 8 000 octets.

add_authenticator
Indique si le processus de chiffrement d’origine comprend et chiffre un authentificateur avec le texte en clair. add_authenticator a la valeur 1 si le processus de chiffrement utilise un authentificateur. add_authenticator a le type de données int.

@add_authenticator
Variable indiquant si le processus de chiffrement d’origine comprend et chiffre un authentificateur avec le texte en clair. @add_authenticador a t-il la valeur 1 si le processus de chiffrement utilise un authentificateur. @add_authenticator a un type de données int.

authenticator
Données utilisées comme base pour la génération de l’authentificateur. authenticator a le type de données sysname.

@authenticator
Variable contenant les données utilisées comme base pour la génération des authentificateurs. @authenticator a un type de données sysname.

Types de retour

varbinary d’une taille maximale de 8 000 octets.

Notes

DECRYPTBYPASSPHRASE ne nécessite pas d’autorisations pour son exécution. DECRYPTBYPASSPHRASE retourne NULL si elle reçoit la phrase secrète ou les informations de l’authentificateur incorrectes.

DECRYPTBYPASSPHRASE utilise la phrase secrète pour générer une clé de déchiffrement. Cette clé de déchiffrement n’est pas conservée.

Si un authentificateur a été inclus au moment du chiffrement du texte chiffré, DECRYPTBYPASSPHRASE doit recevoir ce même authentificateur pour le processus de déchiffrement. Si la valeur de l’authentificateur fournie pour le processus de déchiffrement ne correspond pas à celle initialement utilisée pour chiffrer les données, l’opération DECRYPTBYPASSPHRASE échoue.

Exemples

L’exemple suivant déchiffre l’enregistrement mis à jour dans 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  

Voir aussi

Choisir un algorithme de chiffrement
ENCRYPTBYPASSPHRASE (Transact-SQL)