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
Verschlüsselt einen binären Ausdruck mithilfe der AES-Verschlüsselung.
Syntax
aes_encrypt(expr, key [, mode [, padding[, iv[, aad]]]])
Argumente
-
expr: Der zu verschlüsselndeBINARY-Ausdruck. -
key: EinBINARY-Ausdruck. Der Schlüssel, der zum Verschlüsseln vonexprverwendet wird. Er muss 16, 24 oder 32 Bytes lang sein. -
mode: Ein optionalerSTRING-Ausdruck, der den Verschlüsselungsmodus beschreibt. -
padding: Ein optionalerSTRING-Ausdruck, der beschreibt, wie die Verschlüsselung das Auffüllen des Werts auf die Schlüssellänge behandelt. -
iv: Ein optionalerSTRING-Ausdruck, der einen Initialisierungsvektor (IV) für die ModiGCModerCBCbereitstellt. Gilt für Databricks SQL und Databricks Runtime 13.3 LTS und höher -
aad: Ein optionalerSTRING-Ausdruck, der authentifizierte zusätzliche Daten (AAD) imGCM-Modus bereitstellt. Gilt für Databricks SQL und Databricks Runtime 13.3 LTS und höher
Gibt zurück
Ein BINARY.
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. Bei der PKCS-Auffüllung werden Bytes (Anzahl zwischen 1 und der Schlüssellänge) hinzugefügt, umexprauf ein Vielfaches derkey-Länge aufzufüllen. Der Wert jedes Auffüllbytes entspricht der Anzahl von Bytes, die aufgefüllt werden. -
'DEFAULT': Verwendet'NONE'für den'GCM'-Modus und'PKCS'für den'ECB'- und'CBC'-Modus.
iv, wenn angegeben, muss für GCM eine Länge von 12 Byte und für CBC von 16 Byte haben.
Der Algorithmus hängt von der Länge des Schlüssels ab:
-
16: AES-128 -
24: AES-192 -
32: AES-256
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
> 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