ENCRYPTBYPASSPHRASE (Transact-SQL)
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance
Chiffrer des données avec un mot de passe à l'aide de l'algorithme TRIPLE DES avec une longueur de clé de 128 bits.
Notes
SQL Server 2017 et versions ultérieures chiffrent les données à l’aide d’une phrase secrète et d’une clé AES256.
Conventions de la syntaxe Transact-SQL
Syntaxe
EncryptByPassPhrase ( { 'passphrase' | @passphrase }
, { 'cleartext' | @cleartext }
[ , { add_authenticator | @add_authenticator }
, { authenticator | @authenticator } ] )
Arguments
passphrase
Expression relative au mot de passe à partir de laquelle générer une clé symétrique.
@passphrase
Variable de type nvarchar, char, varchar, binary, varbinary ou nchar qui contient une phrase secrète à partir de laquelle générer une clé symétrique.
texte clair
Texte clair à chiffrer.
@cleartext
Variable de type nvarchar, char, varchar, binary, varbinary ou nchar contenant le texte en clair. Sa taille maximale est de 8 000 octets.
add_authenticator
Indique si un authentificateur sera chiffré avec le texte en clair. 1 si un authentificateur est ajouté. int.
@add_authenticator
Indique si un hachage est chiffré avec le texte clair.
authenticator
Données dont l'authentificateur est dérivé. sysname.
@authenticator
Variable qui contient les données dont l'authentificateur est dérivé.
Types de retour
varbinary d’une taille maximale de 8 000 octets.
Remarques
Une expression relative au mot de passe est un mot de passe qui comporte des espaces. L'avantage d'utiliser une expression relative au mot de passe est qu'il est plus facile de mémoriser une phrase qui a un sens plutôt qu'une longue chaîne de caractères.
Cette fonction ne vérifie pas la complexité des mots de passe.
Exemples
L'exemple suivant met à jour un enregistrement de la table SalesCreditCard
et chiffre la valeur du numéro de carte de crédit stocké dans la colonne CardNumber_EncryptedbyPassphrase
, en utilisant la clé primaire comme authentificateur.
USE AdventureWorks2022;
GO
-- Create a column in which to store the encrypted data.
ALTER TABLE Sales.CreditCard
ADD CardNumber_EncryptedbyPassphrase VARBINARY(256);
GO
-- First get the passphrase from the user.
DECLARE @PassphraseEnteredByUser NVARCHAR(128);
SET @PassphraseEnteredByUser
= 'A little learning is a dangerous thing!';
-- Update the record for the user's credit card.
-- In this case, the record is number 3681.
UPDATE Sales.CreditCard
SET CardNumber_EncryptedbyPassphrase = EncryptByPassPhrase(@PassphraseEnteredByUser
, CardNumber, 1, CONVERT(varbinary, CreditCardID))
WHERE CreditCardID = '3681';
GO
Voir aussi
DECRYPTBYPASSPHRASE (Transact-SQL)
Hiérarchie de chiffrement