Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:
Databricks SQL
Databricks Runtime 10.4 LTS und höher
Entschlüsselt einen BINARY-Wert mit AES-Verschlüsselung.
Syntax
aes_decrypt(expr, key [, mode [, padding [, aad]]])
Argumente
-
expr: Der zu entschlüsselndeBINARY-Ausdruck. -
key: EinBINARY-Ausdruck. Muss mit dem Schlüssel übereinstimmen, der ursprünglich zum Generieren des verschlüsselten Werts verwendet wurde, und 16, 24 oder 32 Bytes lang sein. -
mode: Ein optionalerSTRING-Ausdruck, der den Verschlüsselungsmodus beschreibt, der zum Generieren des verschlüsselten Werts verwendet wird. -
padding: Ein optionalerSTRING-Ausdruck, der beschreibt, wie die Verschlüsselung das Auffüllen des Werts auf die Schlüssellänge behandelt hat. -
aad: Ein optionalerSTRING-Ausdruck, der authentifizierte zusätzliche Daten (AAD) imGCM-Modus bereitstellt. Muss mit denaadübereinstimmen, die zum Generieren des verschlüsselten Werts verwendet werden. Gilt für Databricks SQL und Databricks Runtime 13.3 LTS und höher
Gibt zurück
Einen BINARY-Ausdruck
mode muss eine der folgenden Optionen sein (Groß-/Kleinschreibung wird nicht beachtet):
-
'CBC': Verwendet den Cipher Block Chaining-Modus (CBC). Gilt für Databricks SQL, Databricks Runtime 13.3 LTS und höher -
'ECB': Verwendet den Electronic CodeBook-Modus (ECB). -
'GCM': Verwendet den Galois/Counter-Modus (GCM). Dies ist die Standardoption.
padding muss eine der folgenden Optionen sein (Groß-/Kleinschreibung wird nicht beachtet):
-
'NONE': Verwendet keine Auffüllung. Nur für'GCM'gültig. -
'PKCS': Verwendet PKCS-Auffüllung (Public Key Cryptography Standards). Nur für'ECB'und'CBC'gültig. -
'DEFAULT': Verwendet'NONE'für den'GCM'-Modus und'PKCS'für den'ECB'- und'CBC'-Modus.
Der Algorithmus hängt von der Länge des Schlüssels ab:
-
16: AES-128 -
24: AES-192 -
32: AES-256
Verwenden Sie zum Tolerieren von Fehlerbedingungen, die sich aus der Entschlüsselung ergeben und NULL zurückgeben, stattdessen try_aes_decrypt.
Beispiele
> SELECT base64(aes_encrypt('Spark', 'abcdefghijklmnop'));
4A5jOAh9FNGwoMeuJukfllrLdHEZxA2DyuSQAWz77dfn
> SELECT cast(aes_decrypt(unbase64('4A5jOAh9FNGwoMeuJukfllrLdHEZxA2DyuSQAWz77dfn'),
'abcdefghijklmnop') AS STRING);
Spark
> SELECT base64(aes_encrypt('Spark SQL', '1234567890abcdef', 'ECB', 'PKCS'));
3lmwu+Mw0H3fi5NDvcu9lg==
> SELECT cast(aes_decrypt(unbase64('3lmwu+Mw0H3fi5NDvcu9lg=='),
'1234567890abcdef', 'ECB', 'PKCS') AS STRING);
Spark SQL
> SELECT base64(aes_encrypt('Spark SQL', '1234567890abcdef', 'GCM'));
2sXi+jZd/ws+qFC1Tnzvvde5lz+8Haryz9HHBiyrVohXUG7LHA==
> SELECT cast(aes_decrypt(unbase64('2sXi+jZd/ws+qFC1Tnzvvde5lz+8Haryz9HHBiyrVohXUG7LHA=='),
'1234567890abcdef', 'GCM') AS STRING);
Spark SQL
-- try_aes_decrypt tolerates an error where aes_decrypt does not.
> SELECT cast(aes_decrypt(x'1234567890abcdef1234567890abcdef', '1234567890abcdef', 'GCM') AS STRING);
Error: INVALID_PARAMETER_VALUE.AES_KEY
> SELECT cast(try_aes_decrypt(x'1234567890abcdef1234567890abcdef', '1234567890abcdef', 'GCM') AS STRING);
NULL
> SELECT base64(aes_encrypt('Apache Spark', '0000111122223333', 'CBC', 'PKCS'));
U2FsdGVkX1/ERGxwEOTDpDD4bQvDtQaNe+gXGudCcUk=
> SELECT cast(aes_decrypt(unbase64('OkzJi9oaiKJtTMmOrFjH2QWJZYF1UwT+4cA2008LlHA='), '0000111122223333', 'CBC', 'PKCS') AS STRING);
Apache Spark
> SELECT base64(aes_encrypt('Spark SQL', '1234567890abcdef', 'GCM', 'DEFAULT', '123456789012', 'Some AAD'));
MTIzNDU2Nzg5MDEyMdXvR41sJqwZ6hnTU8FRTTtXbL8yeChIZA==
> SELECT cast(aes_decrypt(unbase64('MTIzNDU2Nzg5MDEyMdXvR41sJqwZ6hnTU8FRTTtXbL8yeChIZA=='),
'1234567890abcdef', 'GCM', 'DEFAULT', 'Some AAD') AS STRING);
Spark SQL