Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:
Databricks SQL
Databricks Runtime 10.4 LTS ke atas
Mendekripsi biner yang dihasilkan menggunakan enkripsi AES.
Sintaks
aes_decrypt(expr, key [, mode [, padding [, aad]]])
Argumen
-
expr: EkspresiBINARYyang akan didekripsi. -
key: SebuahBINARYekspresi. Harus sama dengan kunci yang awalnya digunakan untuk menghasilkan nilai terenkripsi dan dengan panjang 16, 24, atau 32 byte. -
mode: Ekspresi opsionalSTRINGyang menjelaskan mode enkripsi yang digunakan untuk menghasilkan nilai terenkripsi. -
padding: Ekspresi opsionalSTRINGyang menjelaskan cara enkripsi menangani padding nilai ke panjang kunci. -
aad: Ekspresi opsionalSTRINGyang menyediakan data tambahan yang diautentikasi (AAD) dalamGCMmode. Harus cocok dengan yangaaddigunakan untuk menghasilkan nilai terenkripsi. Berlaku untuk Databricks SQL dan Databricks Runtime 13.3 LTS ke atas.
Mengembalikan
BINER.
mode harus salah satu dari (tidak peka huruf besar/kecil):
-
'CBC': Gunakan mode Cipher-Block Chaining (CBC). Berlaku untuk Databricks SQL, Databricks Runtime 13.3 LTS ke atas. -
'ECB': Gunakan mode Electronic CodeBook (ECB). -
'GCM': Gunakan Galois/Counter Mode (GCM). Ini adalah default.
padding harus salah satu dari (tidak peka huruf besar/kecil):
-
'NONE': Tidak menggunakan bantalan. Hanya berlaku untuk'GCM'. -
'PKCS': Menggunakan Standar Kriptografi Kunci Publik (PKCS) padding. Hanya berlaku untuk'ECB'dan'CBC'. -
'DEFAULT': Menggunakan'NONE'untuk'GCM'dan'PKCS'untuk'ECB'dan'CBC'mode.
Algoritma tergantung pada panjang kunci:
-
16: AES-128 -
24: AES-192 -
32: AES-256
Untuk mentolerir kondisi kesalahan apa pun yang dihasilkan dari dekripsi dan mengembalikan NULL , gunakan try_aes_decrypt
Contoh
> 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