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)