aes_decrypt

Vrátí dešifrovanou hodnotu input použití AES s modepadding. Podporují se délky klíčů 16, 24 a 32 bitů. Podporované kombinace (mode, padding) jsou (ECB, PKCS), (GCM, NONE) a (CBC, PKCS). Volitelná další ověřená data (AAD) se podporují jenom pro GCM. Pokud je k dispozici šifrování, musí být pro dešifrování zadaná stejná hodnota AAD. Výchozí režim je GCM.

Syntaxe

from pyspark.sql import functions as sf

sf.aes_decrypt(input, key, mode=None, padding=None, aad=None)

Parametry

Parameter Typ Description
input pyspark.sql.Column nebo str Binární hodnota k dešifrování.
key pyspark.sql.Column nebo str Heslo, které se má použít k dešifrování dat.
mode pyspark.sql.Column nebo str, volitelné Určuje, který režim blokové šifry se má použít k dešifrování zpráv. Platné režimy: ECB, GCM, CBC.
padding pyspark.sql.Column nebo str, volitelné Určuje, jak pad zprávy, jejichž délka není násobkem velikosti bloku. Platné hodnoty: PKCS, NONE, DEFAULT. Výchozí odsazení znamená PKCS pro ECB, NONE pro GCM a PKCS pro CBC.
aad pyspark.sql.Column nebo str, volitelné Volitelná další ověřená data. Podporuje se pouze v režimu GCM. Může to být jakýkoli vstup ve volném tvaru a musí být k dispozici pro šifrování i dešifrování.

Návraty

pyspark.sql.Column: Nový sloupec, který obsahuje dešifrovanou hodnotu.

Examples

Příklad 1: Dešifrování dat pomocí klíče, režimu, odsazení a 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                                                                |
+---------------------------------------------------------------------+

Příklad 2: Dešifrování dat pomocí klíče, režimu a odsazení

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                                                             |
+------------------------------------------------------------------+

Příklad 3: Dešifrování dat pomocí klíče a režimu

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                                                             |
+------------------------------------------------------------------+

Příklad 4: Dešifrování dat pomocí klíče

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                                                         |
+--------------------------------------------------------------+