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 13.3 LTS und höher
Entschlüsselt eine Binärdatei, die mithilfe der AES-Verschlüsselung erstellt wurde, und gibt NULL zurück, wenn dies aus irgendeinem Grund fehlschlägt.
Syntax
try_aes_decrypt(expr, key [, mode [, padding [, aad]]])
Argumente
-
expr: Der zu entschlüsselnde BINARY-Ausdruck. -
key: Ein BINARY-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 optionaler STRING-Ausdruck, der den Verschlüsselungsmodus beschreibt, der zum Generieren des verschlüsselten Werts verwendet wird. -
padding: Ein optionaler STRING-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):
-
'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'gültig. -
'DEFAULT': Verwendet'NONE'für den'GCM'-Modus und'PKCS'für den'ECB'-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 Melden von Fehlern im Falle von Fehlerbedingungen anstelle von NULLtry_aes_decrypt.
Beispiele
> SELECT base64(aes_encrypt('Spark', 'abcdefghijklmnop'));
4A5jOAh9FNGwoMeuJukfllrLdHEZxA2DyuSQAWz77dfn
> SELECT cast(try_aes_decrypt(unbase64('4A5jOAh9FNGwoMeuJukfllrLdHEZxA2DyuSQAWz77dfn'),
'abcdefghijklmnop') AS STRING);
Spark
> SELECT base64(aes_encrypt('Spark SQL', '1234567890abcdef', 'ECB', 'PKCS'));
3lmwu+Mw0H3fi5NDvcu9lg==
> SELECT cast(try_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==
-- 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('Spark SQL', '1234567890abcdef', 'GCM', 'DEFAULT', '123456789012', 'Some AAD'));
MTIzNDU2Nzg5MDEyMdXvR41sJqwZ6hnTU8FRTTtXbL8yeChIZA==
> SELECT cast(try_aes_decrypt(unbase64('MTIzNDU2Nzg5MDEyMdXvR41sJqwZ6hnTU8FRTTtXbL8yeChIZA=='),
'1234567890abcdef', 'GCM', 'DEFAULT', 'Some AAD') AS STRING);
Spark SQL