Partager via


ENCRYPTBYPASSPHRASE (Transact-SQL)

Chiffre les données avec une expression relative au mot de passe.

Icône Lien de rubriqueConventions de la syntaxe de 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 expression relative au mot de passe à partir de laquelle générer une clé symétrique.

  • cleartext
    Texte clair à chiffrer.

  • @cleartext
    Variable de type nvarchar, char, varchar, binary, varbinary ou nchar qui contient 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 des valeurs renvoyées

Variable binaire (varbinary) de 8 000 octets au maximum.

Notes

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 AdventureWorks;
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