Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Jedná se o speciální verzi aes_decrypt , která provádí stejnou operaci, ale vrátí hodnotu NULL místo vyvolání chyby, pokud dešifrování nelze provést. 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.try_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 nebo hodnotu NULL.
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.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 |
+-------------------------------------------------------------------------+
Příklad 2: Nepodařilo se dešifrovat data pomocí klíče, režimu, odsazení a aad
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 |
+-------------------------------------------------------------------------+
Příklad 3: 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.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 |
+----------------------------------------------------------------------+
Příklad 4: 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.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 |
+----------------------------------------------------------------------+
Příklad 5: Dešifrování dat pomocí klíče
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 |
+------------------------------------------------------------------+