Bagikan melalui


aes_decrypt

Mengembalikan nilai terdekripsi menggunakan input AES dengan modepadding. Panjang kunci 16, 24, dan 32 bit didukung. Kombinasi (mode, padding) yang didukung adalah (ECB, PKCS), (GCM, NONE) dan (CBC, PKCS). 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_decrypt(input, key, mode=None, padding=None, aad=None)

Parameter-parameternya

Pengaturan Tipe Description
input pyspark.sql.Column atau str Nilai biner untuk didekripsi.
key pyspark.sql.Column atau str Frase sandi yang digunakan untuk mendekripsi data.
mode pyspark.sql.Column atau str, opsional Menentukan mode cipher blok mana yang harus digunakan untuk mendekripsi 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.
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 yang didekripsi.

Examples

Contoh 1: Mendekripsi data dengan kunci, mode, padding, dan aad

from pyspark.sql import functions as sf
df = spark.createDataFrame([(
    "AAAAAAAAAAAAAAAAQiYi+sTLm7KD9UcZ2nlRdYDe/PX4",
    "abcdefghijklmnop12345678ABCDEFGH", "GCM", "DEFAULT",
    "This is an AAD mixed into the input",)],
    ["input", "key", "mode", "padding", "aad"]
)
df.select(sf.aes_decrypt(
    sf.unbase64(df.input), df.key, "mode", df.padding, df.aad
).cast("STRING")).show(truncate=False)
+---------------------------------------------------------------------+
|CAST(aes_decrypt(unbase64(input), key, mode, padding, aad) AS STRING)|
+---------------------------------------------------------------------+
|Spark                                                                |
+---------------------------------------------------------------------+

Contoh 2: Mendekripsi data dengan kunci, mode, dan padding

from pyspark.sql import functions as sf
df = spark.createDataFrame([(
    "AAAAAAAAAAAAAAAAAAAAAPSd4mWyMZ5mhvjiAPQJnfg=",
    "abcdefghijklmnop12345678ABCDEFGH", "CBC", "DEFAULT",)],
    ["input", "key", "mode", "padding"]
)
df.select(sf.aes_decrypt(
    sf.unbase64(df.input), df.key, "mode", df.padding
).cast("STRING")).show(truncate=False)
+------------------------------------------------------------------+
|CAST(aes_decrypt(unbase64(input), key, mode, padding, ) AS STRING)|
+------------------------------------------------------------------+
|Spark                                                             |
+------------------------------------------------------------------+

Contoh 3: Mendekripsi data dengan kunci dan mode

from pyspark.sql import functions as sf
df = spark.createDataFrame([(
    "AAAAAAAAAAAAAAAAAAAAAPSd4mWyMZ5mhvjiAPQJnfg=",
    "abcdefghijklmnop12345678ABCDEFGH", "CBC", "DEFAULT",)],
    ["input", "key", "mode", "padding"]
)
df.select(sf.aes_decrypt(
    sf.unbase64(df.input), df.key, "mode"
).cast("STRING")).show(truncate=False)
+------------------------------------------------------------------+
|CAST(aes_decrypt(unbase64(input), key, mode, DEFAULT, ) AS STRING)|
+------------------------------------------------------------------+
|Spark                                                             |
+------------------------------------------------------------------+

Contoh 4: Mendekripsi data dengan kunci

from pyspark.sql import functions as sf
df = spark.createDataFrame([(
    "83F16B2AA704794132802D248E6BFD4E380078182D1544813898AC97E709B28A94",
    "0000111122223333",)],
    ["input", "key"]
)
df.select(sf.aes_decrypt(
    sf.unhex(df.input), df.key
).cast("STRING")).show(truncate=False)
+--------------------------------------------------------------+
|CAST(aes_decrypt(unhex(input), key, GCM, DEFAULT, ) AS STRING)|
+--------------------------------------------------------------+
|Spark                                                         |
+--------------------------------------------------------------+