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
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