DECRYPTBYPASSPHRASE (Transact-SQL)
Entschlüsselt Daten, die mit einer Passphrase verschlüsselt wurden.
Syntax
DecryptByPassPhrase ( { 'passphrase' | @passphrase }
, { 'ciphertext' | @ciphertext }
[ , { add_authenticator | @add_authenticator }
, { authenticator | @authenticator } ] )
Argumente
passphrase
Die Passphase, die zum Generieren des Schlüssels für die Entschlüsselung verwendet wird.@passphrase
Eine Variable vom Typ nvarchar, char, varchar oder nchar, die die Passphrase enthält, die zum Generieren des Schlüssels für die Entschlüsselung verwendet wird.'ciphertext'
Der zu entschlüsselnde verschlüsselte Text.@ciphertext
Eine Variable vom Typ varbinary, die den verschlüsselten Text enthält. Die maximale Größe beträgt 8.000 Bytes.add_authenticator
Gibt an, ob zusammen mit dem Nur-Text auch ein Authentifikator verschlüsselt wurde. Hat den Wert 1, wenn ein Authentifikator verwendet wurde. int.@add_authenticator
Gibt an, ob zusammen mit dem Nur-Text auch ein Authentifikator verschlüsselt wurde. Hat den Wert 1, wenn ein Authentifikator verwendet wurde. int.authenticator
Die Authentifikatordaten. sysname.@authenticator
Eine Variable, die Daten enthält, von denen ein Authentifikator abgeleitet werden soll.
Rückgabetypen
varbinary mit einer maximalen Größe von 8.000 Bytes.
Hinweise
Zum Ausführen dieser Funktion sind keine Berechtigungen erforderlich.
Gibt NULL zurück, wenn der falsche Pass-Ausdruck oder falsche Authentifikatorinformationen verwendet werden.
Der Pass-Ausdruck wird zum Generieren eines Entschlüsselungsschlüssels verwendet, der nicht permanent ist.
Falls beim Verschlüsseln des verschlüsselten Texts ein Authentifikator eingeschlossen wurde, muss der Authentifikator zur Entschlüsselungszeit bereitgestellt werden. Falls der zur Entschlüsselungszeit bereitgestellte Authentifikatorwert nicht mit dem mit den Daten verschlüsselten Authentifikatorwert übereinstimmt, kann die Entschlüsselung nicht ausgeführt werden.
Beispiele
Im folgenden Beispiel wird der unter EncryptByPassPhrase aktualisierte Datensatz entschlüsselt.
USE AdventureWorks2008R2;
-- Get the pass phrase 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(nvarchar,
DecryptByPassphrase(@PassphraseEnteredByUser, CardNumber_EncryptedbyPassphrase, 1
, CONVERT(varbinary, CreditCardID)))
AS 'Decrypted card number' FROM Sales.CreditCard
WHERE CreditCardID = '3681';
GO
Siehe auch