Kategorien:

Verschlüsselungsfunktionen

TRY_DECRYPT

Eine spezielle Version von DECRYPT, die einen NULL-Wert zurückgibt, wenn beim Entschlüsseln ein Fehler auftritt.

Siehe auch:

ENCRYPT, ENCRYPT_RAW, DECRYPT, DECRYPT_RAW, TRY_DECRYPT_RAW

Syntax

TRY_DECRYPT( <value_to_decrypt> , <passphrase> ,
         [ [ <additional_authenticated_data> , ] <encryption_method> ]
       )
Copy

Argumente

Benötigt:

value_to_decrypt

Der zu entschlüsselnde BINARY-Wert.

passphrase

Die Passphrase zum Ver-/Entschlüsseln der Daten. Die Passphrase ist ein VARCHAR-Wert.

Optional:

additional_authenticated_data

Zusätzliche authentifizierte Daten (AAD) sind zusätzliche Daten, deren Vertraulichkeit und Authentizität während des Entschlüsselungsprozesses sichergestellt sind. Diese AAD sind jedoch nicht verschlüsselt und nicht als ein Feld im Rückgabewert der Funktionen ENCRYPT und ENCRYPT_RAW enthalten.

Wenn AAD an die Verschlüsselungsfunktion (ENCRYPT oder ENCRYPT_RAW) übergeben werden, müssen dieselben AAD an die Entschlüsselungsfunktion (DECRYPT oder DECRYPT_RAW) übergeben werden. Wenn die an die Entschlüsselungsfunktion übergebenen AAD nicht mit den an die Verschlüsselungsfunktion übergebenen AAD übereinstimmen, schlägt die Entschlüsselung fehl.

Der Unterschied zwischen den AAD und der passphrase besteht darin, dass die Passphrase geheim gehalten werden soll (andernfalls ist die Verschlüsselung im Wesentlichen wertlos), während die AAD öffentlich gelassen werden können. Mithilfe der AAD wird authentifiziert, dass eine öffentliche Information und ein verschlüsselter Wert miteinander verknüpft sind. Der Beispielabschnitt zur ENCRYPT-Funktion enthält ein Beispiel, welches das Verhalten zeigt, wenn die AAD übereinstimmen, und das Verhalten, wenn diese nicht übereinstimmen.

Für ENCRYPT_RAW und DECRYPT_RAW sollten die AAD vom Datentyp BINARY sein. Für ENCRYPT und DECRYPT können die AAD entweder vom Datentyp VARCHAR oder BINARY sein und müssen nicht mit dem Datentyp des verschlüsselten Werts übereinstimmen.

Die AAD werden nur von AEAD-aktivierten Verschlüsselungsmodi wie GCM (Standard) unterstützt.

encryption_method

Diese Zeichenfolge gibt die Methode zum Ver-/Entschlüsseln der Daten an. Diese Zeichenfolge enthält Unterfelder:

<algorithm>-<mode> [ /pad: <padding> ]
Copy

algorithm ist derzeit beschränkt auf:

  • 'AES': Wenn eine Passphrase übergeben wird (z. B. an ENCRYPT), verwendet die Funktion die AES-256-Verschlüsselung (256 Bit). Wenn ein Schlüssel übergeben wird (z. B. an ENCRYPT_RAW), verwendet die Funktion abhängig von der Schlüssellänge eine 128-Bit-, 192-Bit- oder 256-Bit-Verschlüsselung.

Bei algorithm muss die Groß-/Kleinschreibung nicht beachtet werden.

mode gibt an, welcher Blockverschlüsselungsmodus zum Verschlüsseln von Meldungen verwendet werden soll. Die folgende Tabelle zeigt, welche Modi unterstützt werden und welche dieser Modi das Auffüllen unterstützen:

Modus

Auffüllen

Beschreibung

'ECB'

Ja

Jeder Block wird einzeln mit dem Schlüssel verschlüsselt. Dieser Modus wird im Allgemeinen nicht empfohlen und ist nur aus Gründen der Kompatibilität mit externen Implementierungen enthalten.

'CBC'

Ja

Der verschlüsselte Block ist XORed mit dem vorherigen Block.

'GCM'

Nein

Der Galois/Counter-Modus ist ein Hochleistungs-Verschlüsselungsmodus, der AEAD-aktiviert ist. AEAD sichert zusätzlich die Authentizität und Vertraulichkeit der verschlüsselten Daten durch Generieren eines AEAD-Tags. Zudem unterstützt AEAD die AAD (zusätzliche authentifizierte Daten).

'CTR'

Nein

Counter-Modus.

'OFB'

Nein

Output-Feedback-Modus. Der Verschlüsselungstext ist XORed mit dem Klartext eines Blocks.

'CFB'

Nein

Cipher-Feedback-Modus ist eine Kombination aus OFB und CBC.

Bei mode muss die Groß-/Kleinschreibung nicht beachtet werden.

padding gibt an, wie Nachrichten aufgefüllt werden sollen, deren Länge nicht ein Vielfaches der Blockgröße beträgt. Das Auffüllen gilt nur für die Modi ECB und CBC. Für andere Modi wird das Auffüllen ignoriert. Mögliche Werte für das Auffüllen sind:

  • 'PKCS': Verwendet PKCS5 zum Auffüllen von Blöcken.

  • 'NONE': Kein Auffüllen. Der Benutzer muss sich um das Auffüllen kümmern, wenn der Modus ECB oder CBC verwendet wird.

Bei padding muss die Groß-/Kleinschreibung nicht beachtet werden.

Standardeinstellung: 'AES-GCM'.

Wenn mode nicht angegeben ist, wird GCM verwendet.

Wenn padding nicht angegeben ist, wird PKCS verwendet.

Rückgabewerte

Gibt den entschlüsselten Wert als BINARY oder NULL zurück, wenn während der Entschlüsselung ein Laufzeitfehler auftritt.

Nutzungshinweise und Beispiele

Nutzungshinweise und Beispiele finden Sie in der Beschreibung zur DECRYPT-Funktion.