Udostępnij przez


aes_decrypt

Zwraca odszyfrowaną wartość przy użyciu algorytmu input AES w programie modepadding. Obsługiwane są długości kluczy 16, 24 i 32 bitów. Obsługiwane kombinacje (, ) to (modeECB, PKCS), (GCM, NONE) i (CBC, PKCS). padding Opcjonalne dodatkowe uwierzytelnione dane (AAD) są obsługiwane tylko w przypadku usługi GCM. W przypadku szyfrowania należy podać identyczną wartość usługi AAD do odszyfrowywania. Domyślnym trybem jest GCM.

Składnia

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 lub str Wartość binarna do odszyfrowywania.
key pyspark.sql.Column lub str Hasło używane do odszyfrowywania danych.
mode pyspark.sql.Column lub str, opcjonalnie Określa, który tryb szyfrowania bloku powinien być używany do odszyfrowywania komunikatów. Prawidłowe tryby: EBC, GCM, CBC.
padding pyspark.sql.Column lub str, opcjonalnie Określa sposób uzupełniania komunikatów, których długość nie jest wielokrotnym rozmiarem bloku. Prawidłowe wartości: PKCS, NONE, DEFAULT. Dopełnienie DOMYŚLNE oznacza PKCS dla EBC, NONE dla GCM i PKCS dla CBC.
aad pyspark.sql.Column lub str, opcjonalnie Opcjonalne dodatkowe uwierzytelnione dane. Obsługiwane tylko w trybie GCM. Może to być dowolne dane wejściowe w dowolnej formie i muszą być udostępniane zarówno na potrzeby szyfrowania, jak i odszyfrowywania.

Zwraca

pyspark.sql.Column: nowa kolumna zawierająca odszyfrowaną wartość.

Przykłady

Przykład 1: Odszyfrowywanie danych przy użyciu klucza, trybu, wypełnienia i 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                                                                |
+---------------------------------------------------------------------+

Przykład 2. Odszyfrowywanie danych przy użyciu klucza, trybu i wypełnienia

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

Przykład 3. Odszyfrowywanie danych przy użyciu klucza i trybu

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

Przykład 4. Odszyfrowywanie danych przy użyciu klucza

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