ENCRYPTBYPASSPHRASE (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed Instance

Verschlüsselt Daten unter Verwendung des Triple DES-Algorithmus mit der Schlüsselbitlänge 128 mit einer Passphrase.

Hinweis

SQL Server 2017 und höher verschlüsselt Daten mit einer Passphrase mithilfe eines AES256-Schlüssels.

Transact-SQL-Syntaxkonventionen

Syntax

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

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.

Argumente

passphrase
Eine Passphrase, aus der ein symmetrischer Schlüssel generiert wird.

@passphrase
Eine Variable vom Typ nvarchar, char, varchar, binary, varbinary oder nchar, die eine Passphrase enthält, aus der ein symmetrischer Schlüssel generiert wird.

Klartext
Der zu verschlüsselnde Klartext.

@cleartext
Eine Variable vom Typ nvarchar, char, varchar, binary, varbinary oder nchar, die den 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 wird. 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 Byte.

Hinweise

Eine Passphrase ist ein Kennwort, das Leerzeichen enthält. Die Verwendung eines Passphrases 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 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  

Siehe auch

DECRYPTBYPASSPHRASE (Transact-SQL)
Verschlüsselungshierarchie