Freigeben über


DECRYPTBYPASSPHRASE (Transact-SQL)

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance

Diese Funktion entschlüsselt Daten, die ursprünglich mit einer Passphrase verschlüsselt wurden.

Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

passphrase
Die Passphrase, die zum Generieren des Entschlüsselungsschlüssels verwendet wird.

@passphrase
Eine Variable vom Typ char, nchar, nvarchar oder varchar, die die Passphrase enthält, die zum Generieren des Entschlüsselungsschlüssels verwendet wird.

'ciphertext'
Die Zeichenfolge der Daten, die mit dem Schlüssel verschlüsselt wurden. ciphertext verfügt über einen varbinary-Datentyp.

@ciphertext
Eine Variable vom Typ varbinary, die Daten enthält, die mit dem Schlüssel verschlüsselt wurden. Die @ciphertext-Variable verfügt über eine maximale Größe von 8.000 Bytes.

add_authenticator
Gibt an, ob durch den ursprünglichen Verschlüsselungsprozess ein Authentifikator zusammen mit dem Klartext einbezogen und verschlüsselt wurde. add_authenticator weist den Wert 1 auf, wenn im Verschlüsselungsprozess ein Authentifikator verwendet wurde. add_authenticator verfügt über einen int-Datentyp.

@add_authenticator
Eine Variable, die angibt, ob durch den ursprünglichen Verschlüsselungsprozess ein Authentifikator zusammen mit dem Klartext einbezogen, und verschlüsselt, wurde. @add_authenticator weist den Wert 1 auf, wenn im Verschlüsselungsprozess ein Authentifikator verwendet wurde. @add_authenticator weist den Datentyp int auf.

authenticator
Die Daten, die als Grundlage für die Generierung des Authentifikators verwendet werden. authenticator verfügt über einen sysname-Datentyp.

@authenticator
Eine Variable, die Daten enthält, die als Grundlage für die Generierung der Authentifikatoren verwendet wurden. @authenticator weist den Datentyp sysname auf.

Rückgabetypen

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

Bemerkungen

DECRYPTBYPASSPHRASE erfordert keine Berechtigungen für die Ausführung. DECRYPTBYPASSPHRASE gibt NULL zurück, wenn die falsche Passphrase oder falsche Authentifikatorinformationen übergeben werden.

DECRYPTBYPASSPHRASE verwendet die Passphrase zum Generieren eines Entschlüsselungsschlüssels. Der Entschlüsselungsschlüssel bleibt nicht erhalten.

Wenn zum Zeitpunkt der Verschlüsselung des Chiffretexts ein Authentifikator enthalten war, muss DECRYPTBYPASSPHRASE denselben Authentifikator für den Entschlüsselungsprozess erhalten. Wenn der für den Entschlüsselungsprozess angegebene Authentifikatorwert nicht mit dem Authentifikatorwert übereinstimmt, der ursprünglich zum Verschlüsseln der Daten verwendet wurde, schlägt der DECRYPTBYPASSPHRASE-Vorgang fehl.

Beispiele

Im folgenden Beispiel wird der unter EncryptByPassPhrase aktualisierte Datensatz entschlüsselt.

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  

Weitere Informationen

Auswählen eines Verschlüsselungsalgorithmus
ENCRYPTBYPASSPHRASE (Transact-SQL)