Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
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 |
+------------------------------------------------------------------+