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 menggunakan enkripsi AES.
Sintaks
aes_encrypt(expr, key [, mode [, padding[, iv[, aad]]]])
Argumen
-
expr: EkspresiBINARYyang akan dienkripsi. -
key: SebuahBINARYekspresi. Kunci yang akan digunakan untuk mengenkripsiexpr. Panjangnya harus 16, 24, atau 32 byte. -
mode: Ekspresi opsionalSTRINGyang menjelaskan mode enkripsi. -
padding: Ekspresi opsionalSTRINGyang menjelaskan bagaimana enkripsi menangani padding nilai ke panjang kunci. -
iv: Ekspresi opsionalSTRINGyang menyediakan vektor inisialisasi (IV) untukGCMmode atauCBC. Berlaku untuk Databricks SQL dan Databricks Runtime 13.3 LTS ke atas. -
aad: Ekspresi opsionalSTRINGyang menyediakan data tambahan yang diautentikasi (AAD) dalamGCMmode. Berlaku untuk Databricks SQL dan Databricks Runtime 13.3 LTS ke atas.
Mengembalikan
BINARY.
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'. Bantalan PKCS menambahkan antara 1 dan jumlah byte panjang kunci ke bantalanexprke kelipatankeypanjang. Nilai setiap byte bantalan adalah jumlah byte yang diberi bantalan. -
'DEFAULT': Menggunakan'NONE'untuk'GCM'dan'PKCS'untuk'ECB', dan'CBC'mode.
iv, jika ditentukan, harus panjang 12 byte untuk GCM dan 16 byte untuk CBC.
Algoritma tergantung pada panjang kunci:
-
16: AES-128 -
24: AES-192 -
32: AES-256
Kondisi kesalahan umum
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
> 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
> SELECT aes_encrypt('data', 'short');
Error: INVALID_PARAMETER_VALUE.AES_KEY_LENGTH