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.
Mengembalikan nilai terenkripsi menggunakan input AES yang diberikan mode dengan yang ditentukan padding. Panjang kunci 16, 24, dan 32 bit didukung. Kombinasi (mode, padding) yang didukung adalah (ECB, PKCS), (GCM, NONE) dan (CBC, PKCS). Vektor inisialisasi opsional (IV) hanya didukung untuk mode CBC dan GCM. Ini harus 16 byte untuk CBC dan 12 byte untuk GCM. Jika tidak disediakan, vektor acak akan dihasilkan dan didahului ke output. Data terautentikasi tambahan opsional (AAD) hanya didukung untuk GCM. Jika disediakan untuk enkripsi, nilai AAD yang identik harus disediakan untuk dekripsi. Mode defaultnya adalah GCM.
Syntax
from pyspark.sql import functions as sf
sf.aes_encrypt(input, key, mode=None, padding=None, iv=None, aad=None)
Parameter-parameternya
| Pengaturan | Tipe | Description |
|---|---|---|
input |
pyspark.sql.Column atau str |
Nilai biner untuk dienkripsi. |
key |
pyspark.sql.Column atau str |
Frase sandi yang digunakan untuk mengenkripsi data. |
mode |
pyspark.sql.Column atau str, opsional |
Menentukan mode sandi blok mana yang harus digunakan untuk mengenkripsi pesan. Mode yang valid: ECB, GCM, CBC. |
padding |
pyspark.sql.Column atau str, opsional |
Menentukan cara mengalihkan pesan yang panjangnya bukan kelipatan ukuran blok. Nilai yang valid: PKCS, NONE, DEFAULT. Padding DEFAULT berarti PKCS untuk ECB, NONE untuk GCM dan PKCS untuk CBC. |
iv |
pyspark.sql.Column atau str, opsional |
Vektor inisialisasi opsional. Hanya didukung untuk mode CBC dan GCM. Nilai yang valid: Tidak ada atau "". Array 16-byte untuk mode CBC. Array 12-byte untuk mode GCM. |
aad |
pyspark.sql.Column atau str, opsional |
Data tambahan opsional yang diautentikasi. Hanya didukung untuk mode GCM. Ini bisa berupa input bentuk bebas dan harus disediakan untuk enkripsi dan dekripsi. |
Pengembalian Barang
pyspark.sql.Column: Kolom baru yang berisi nilai terenkripsi.
Examples
Contoh 1: Mengenkripsi data dengan kunci, mode, padding, iv, dan aad
from pyspark.sql import functions as sf
df = spark.createDataFrame([(
"Spark", "abcdefghijklmnop12345678ABCDEFGH", "GCM", "DEFAULT",
"000000000000000000000000", "This is an AAD mixed into the input",)],
["input", "key", "mode", "padding", "iv", "aad"]
)
df.select(sf.base64(sf.aes_encrypt(
df.input, df.key, "mode", df.padding, sf.to_binary(df.iv, sf.lit("hex")), df.aad)
)).show(truncate=False)
+-----------------------------------------------------------------------+
|base64(aes_encrypt(input, key, mode, padding, to_binary(iv, hex), aad))|
+-----------------------------------------------------------------------+
|AAAAAAAAAAAAAAAAQiYi+sTLm7KD9UcZ2nlRdYDe/PX4 |
+-----------------------------------------------------------------------+
Contoh 2: Mengenkripsi data dengan kunci, mode, padding, dan iv
from pyspark.sql import functions as sf
df = spark.createDataFrame([(
"Spark", "abcdefghijklmnop12345678ABCDEFGH", "GCM", "DEFAULT",
"000000000000000000000000", "This is an AAD mixed into the input",)],
["input", "key", "mode", "padding", "iv", "aad"]
)
df.select(sf.base64(sf.aes_encrypt(
df.input, df.key, "mode", df.padding, sf.to_binary(df.iv, sf.lit("hex")))
)).show(truncate=False)
+--------------------------------------------------------------------+
|base64(aes_encrypt(input, key, mode, padding, to_binary(iv, hex), ))|
+--------------------------------------------------------------------+
|AAAAAAAAAAAAAAAAQiYi+sRNYDAOTjdSEcYBFsAWPL1f |
+--------------------------------------------------------------------+
Contoh 3: Mengenkripsi data dengan kunci, mode, dan padding
from pyspark.sql import functions as sf
df = spark.createDataFrame([(
"Spark SQL", "1234567890abcdef", "ECB", "PKCS",)],
["input", "key", "mode", "padding"]
)
df.select(sf.aes_decrypt(sf.aes_encrypt(df.input, df.key, "mode", df.padding),
df.key, df.mode, df.padding
).cast("STRING")).show(truncate=False)
+---------------------------------------------------------------------------------------------+
|CAST(aes_decrypt(aes_encrypt(input, key, mode, padding, , ), key, mode, padding, ) AS STRING)|
+---------------------------------------------------------------------------------------------+
|Spark SQL |
+---------------------------------------------------------------------------------------------+
Contoh 4: Mengenkripsi data dengan kunci dan mode
from pyspark.sql import functions as sf
df = spark.createDataFrame([(
"Spark SQL", "0000111122223333", "ECB",)],
["input", "key", "mode"]
)
df.select(sf.aes_decrypt(sf.aes_encrypt(df.input, df.key, "mode"),
df.key, df.mode
).cast("STRING")).show(truncate=False)
+---------------------------------------------------------------------------------------------+
|CAST(aes_decrypt(aes_encrypt(input, key, mode, DEFAULT, , ), key, mode, DEFAULT, ) AS STRING)|
+---------------------------------------------------------------------------------------------+
|Spark SQL |
+---------------------------------------------------------------------------------------------+
Contoh 5: Mengenkripsi data dengan kunci
from pyspark.sql import functions as sf
df = spark.createDataFrame([(
"Spark SQL", "abcdefghijklmnop",)],
["input", "key"]
)
df.select(sf.aes_decrypt(
sf.unbase64(sf.base64(sf.aes_encrypt(df.input, df.key))), df.key
).cast("STRING")).show(truncate=False)
+-------------------------------------------------------------------------------------------------------------+
|CAST(aes_decrypt(unbase64(base64(aes_encrypt(input, key, GCM, DEFAULT, , ))), key, GCM, DEFAULT, ) AS STRING)|
+-------------------------------------------------------------------------------------------------------------+
|Spark SQL |
+-------------------------------------------------------------------------------------------------------------+