Megosztás:


try_aes_decrypt

Ez egy speciális verzió aes_decrypt , amely ugyanezt a műveletet hajtja végre, de null értéket ad vissza ahelyett, hogy hibát jelezne, ha a visszafejtés nem hajtható végre. Visszafejtett értéket ad vissza az input AES mode használatával a következővel padding: . A 16, 24 és 32 bites kulcshosszok támogatottak. A (mode, padding) támogatott kombinációi a következők: (ECB, PKCS), (GCM, NONE) és (CBC, PKCS). Az opcionális további hitelesített adatok (AAD) csak a GCM esetében támogatottak. Ha a titkosításhoz meg van adva, a visszafejtéshez meg kell adni az azonos AAD-értéket. Az alapértelmezett mód a GCM.

Szemantika

from pyspark.sql import functions as sf

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

Paraméterek

Paraméter Típus Description
input pyspark.sql.Column vagy str A visszafejtendő bináris érték.
key pyspark.sql.Column vagy str Az adatok visszafejtéséhez használandó jelszó.
mode pyspark.sql.Column vagy str, nem kötelező Megadja, hogy mely blokk titkosítási módot kell használni az üzenetek visszafejtéséhez. Érvényes módok: EKB, GCM, CBC.
padding pyspark.sql.Column vagy str, nem kötelező Megadja, hogyan lehet olyan üzeneteket beszedni, amelyek hossza nem a blokkméret többszöröse. Érvényes értékek: PKCS, NONE, DEFAULT. Az ALAPÉRTELMEZETT kitöltés az EKB PKCS-ét, a GCM-hez a NONE-t és a CBC-hez készült PKCS-t jelenti.
aad pyspark.sql.Column vagy str, nem kötelező Opcionális további hitelesített adatok. Csak GCM mód esetén támogatott. Ez bármilyen szabad formátumú bemenet lehet, és a titkosításhoz és a visszafejtéshez is meg kell adni.

Visszatérítések

pyspark.sql.Column: Egy új oszlop, amely visszafejtett vagy NULL értéket tartalmaz.

Példák

1. példa: Adatok visszafejtése kulcs, mód, kitöltés és aad használatával

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.try_aes_decrypt(
    sf.unbase64(df.input), df.key, "mode", df.padding, df.aad
).cast("STRING")).show(truncate=False)
+-------------------------------------------------------------------------+
|CAST(try_aes_decrypt(unbase64(input), key, mode, padding, aad) AS STRING)|
+-------------------------------------------------------------------------+
|Spark                                                                    |
+-------------------------------------------------------------------------+

2. példa: Nem sikerült visszafejteni az adatokat kulcs, mód, kitöltés és aad használatával

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

3. példa: Adatok visszafejtése kulccsal, móddal és kitöltéssel

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

4. példa: Adatok visszafejtése kulccsal és móddal

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

5. példa: Adatok visszafejtése kulccsal

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