Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Funktionen
Gäller för:
Databricks SQL
Databricks Runtime 10.4 LTS och senare
Dekrypterar en binär fil som skapas med hjälp av AES-kryptering.
Syntax
aes_decrypt(expr, key [, mode [, padding [, aad]]])
Argument
-
expr: UttrycketBINARYsom ska dekrypteras. -
key: EttBINARYuttryck. Måste matcha den nyckel som ursprungligen användes för att producera det krypterade värdet och vara 16, 24 eller 32 byte långt. -
mode: Ett valfrittSTRINGuttryck som beskriver krypteringsläget som används för att skapa det krypterade värdet. -
padding: Ett valfrittSTRINGuttryck som beskriver hur kryptering hanterade utfyllnad av värdet till nyckellängd. -
aad: Ett valfrittSTRINGuttryck som tillhandahåller autentiserade ytterligare data (AAD) iGCMläge. Måste matcha detaadsom används för att producera det krypterade värdet. Gäller för Databricks SQL och Databricks Runtime 13.3 LTS och senare.
Returer
EN BINÄR FIL.
mode måste vara något av (skiftlägesokänsligt):
-
'CBC': Använd CBC-läge (Cipher-Block Chaining). Gäller för Databricks SQL, Databricks Runtime 13.3 LTS och senare. -
'ECB': Använd läget Electronic CodeBook (ECB). -
'GCM': Använd Galois/Counter Mode (GCM). Det här är standardinställningen.
padding måste vara något av (skiftlägesokänsligt):
-
'NONE': Använder ingen utfyllnad. Endast giltigt för'GCM'. -
'PKCS': Använder PKCS-utfyllnad (Public Key Cryptography Standards). Endast giltigt för'ECB'och'CBC'. -
'DEFAULT': Använder'NONE'för'GCM'och'PKCS'för'ECB'och'CBC'läge.
Algoritmen beror på nyckelns längd:
-
16: AES-128 -
24: AES-192 -
32: AES-256
Om du vill tolerera eventuella feltillstånd som uppstår vid dekryptering och returnera NULL i stället använda try_aes_decrypt
Exempel
> 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