ENCRYPTBYPASSPHRASE (Transact-SQL)

Verschlüsselt Daten mit einem Pass-Ausdruck.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

EncryptByPassPhrase ( { 'passphrase' | @passphrase } 
        , { 'cleartext' | @cleartext }
    [ , { add_authenticator | @add_authenticator }
        , { authenticator | @authenticator } ] )

Argumente

  • passphrase
    Ein Pass-Ausdruck, von dem ein symmetrischer Schlüssel generiert wird.

  • @passphrase
    Eine Variable vom Datentyp nvarchar, char, varchar, binary, varbinary, oder nchar, die einen Pass-Ausdruck enthält, aus dem ein symmetrischer Schlüssel generiert wird.

  • cleartext
    Der zu verschlüsselnde Klartext.

  • @cleartext
    Eine Variable vom Datentyp nvarchar, char, varchar, binary, varbinary oder nchar, die Klartext enthält. Die maximale Größe beträgt 8.000 Bytes.

  • add_authenticator
    Gibt an, ob ein Authentifikator zusammen mit dem Klartext verschlüsselt werden soll. Mit dem Wert 1 wird ein Authentifikator hinzugefügt. int.

  • @add_authenticator
    Gibt an, ob ein Hash zusammen mit dem Klartext verschlüsselt wird.

  • authenticator
    Daten, von denen ein Authentifikator abgeleitet wird. sysname.

  • @authenticator
    Eine Variable, die Daten enthält, von denen ein Authentifikator abgeleitet wird.

Rückgabetypen

varbinary mit einer maximalen Größe von 8.000 Bytes.

Hinweise

Ein Pass-Ausdruck ist ein Kennwort, das Leerzeichen enthält. Die Verwendung eines Pass-Ausdrucks bietet den Vorteil, dass ein aussagekräftiger Ausdruck oder Satz leichter zu merken ist als eine vergleichsweise lange Zeichenfolge.

Die Kennwortkomplexität wird mit dieser Funktion nicht überprüft.

Beispiele

Im folgenden Beispiel wird ein Datensatz in der SalesCreditCard-Tabelle aktualisiert und der Wert der Kreditkartennummer, die in der CardNumber_EncryptedbyPassphrase-Spalte gespeichert ist, mithilfe des Primärschlüssels als Authentifikator verschlüsselt.

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