DecryptByKey (Transact-SQL)

Verschlüsselt Daten mit einem symmetrischen Schlüssel.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

  • ciphertext
    Die mit dem Schlüssel verschlüsselten Daten. varbinary.
  • @ciphertext
    Eine Variable vom Datentyp varbinary, in der die mit dem Schlüssel verschlüsselten Daten enthalten sind.
  • add_authenticator
    Gibt an, ob zusammen mit dem Nur-Text auch ein Authentifikator verschlüsselt wurde. Dies muss derselbe Wert sein, der beim Verschlüsseln der Daten an EncryptByKey übergeben wurde. Der Datentyp ist int.
  • authenticator
    Die Daten, aus denen ein Authentifikator generiert werden soll. Dies muss derselbe Wert sein, der an EncryptByKey übergeben wurde. Der Datentyp ist sysname.
  • @authenticator
    Eine Variable mit den Daten, aus denen ein Authentifikator generiert werden soll. Dies muss derselbe Wert sein, der an EncryptByKey übergeben wurde.

Rückgabetypen

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

Hinweise

DecryptByKey verwendet einen symmetrischen Schlüssel. Dieser symmetrische Schlüssel muss bereits in der Datenbank geöffnet sein. Es können mehrere Schlüssel gleichzeitig geöffnet sein. Der Schlüssel muss nicht unmittelbar vor dem Entschlüsseln von verschlüsseltem Text geöffnet werden.

Die symmetrische Ver- und Entschlüsselung erfolgt relativ schnell und kann auch bei großen Datenmengen verwendet werden.

Beispiele

A. Entschlüsseln von Daten mit einem symmetrischen Schlüssel

Im folgenden Beispiel wird verschlüsselter Text mit einem symmetrischen Schlüssel entschlüsselt.

-- First, open the symmetric key with which to decrypt the data.
OPEN SYMMETRIC KEY SSN_Key_01
   DECRYPTION BY CERTIFICATE HumanResources037;
GO

-- Now list the original ID, the encrypted ID, and the 
-- decrypted ciphertext. If the decryption worked, the original
-- and the decrypted ID will match.
SELECT NationalIDNumber, EncryptedNationalID 
    AS 'Encrypted ID Number',
    CONVERT(nvarchar, DecryptByKey(EncryptedNationalID)) 
    AS 'Decrypted ID Number'
    FROM HumanResources.Employee;
GO

B. Entschlüsseln von Daten mit einem symmetrischen Schlüssel und einem Authentifizierungshash

Im folgenden Beispiel werden Daten entschlüsselt, die zusammen mit einem Authentifikator verschlüsselt wurden.

-- First, open the symmetric key with which to decrypt the data
OPEN SYMMETRIC KEY CreditCards_Key11
   DECRYPTION BY CERTIFICATE Sales09;
GO

-- Now list the original card number, the encrypted card number,
-- and the decrypted ciphertext. If the decryption worked, 
-- the original number will match the decrypted number.
SELECT CardNumber, CardNumber_Encrypted 
    AS 'Encrypted card number', CONVERT(nvarchar,
    DecryptByKey(CardNumber_Encrypted, 1 , 
    HashBytes('SHA1', CONVERT(varbinary, CreditCardID)))) 
    AS 'Decrypted card number' FROM Sales.CreditCard;
GO

Siehe auch

Verweis

EncryptByKey (Transact-SQL)
CREATE SYMMETRIC KEY (Transact-SQL)
ALTER SYMMETRIC KEY (Transact-SQL)
DROP SYMMETRIC KEY (Transact-SQL)

Andere Ressourcen

Verschlüsselungshierarchie
Auswählen eines Verschlüsselungsalgorithmus

Hilfe und Informationen

Informationsquellen für SQL Server 2005