Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse 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