Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Il s’agit d’une version spéciale qui aes_decrypt effectue la même opération, mais retourne une valeur NULL au lieu de déclencher une erreur si le déchiffrement ne peut pas être effectué. Retourne une valeur déchiffrée d’utilisation d’AES input avec modepadding. Les longueurs de clé de 16, 24 et 32 bits sont prises en charge. Les combinaisons prises en charge de (mode, padding) sont (ECB, PKCS), (GCM, NONE) et (CBC, PKCS). Les données authentifiées supplémentaires facultatives (AAD) ne sont prises en charge que pour GCM. Si elle est fournie pour le chiffrement, la valeur AAD identique doit être fournie pour le déchiffrement. Le mode par défaut est GCM.
Syntaxe
from pyspark.sql import functions as sf
sf.try_aes_decrypt(input, key, mode=None, padding=None, aad=None)
Paramètres
| Paramètre | Type | Descriptif |
|---|---|---|
input |
pyspark.sql.Column ou str |
Valeur binaire à déchiffrer. |
key |
pyspark.sql.Column ou str |
Phrase secrète à utiliser pour déchiffrer les données. |
mode |
pyspark.sql.Column ou str, facultatif |
Spécifie le mode de chiffrement de bloc à utiliser pour déchiffrer les messages. Modes valides : BCE, GCM, CBC. |
padding |
pyspark.sql.Column ou str, facultatif |
Spécifie comment remplir les messages dont la longueur n’est pas un multiple de la taille du bloc. Valeurs valides : PKCS, NONE, DEFAULT. Le remplissage DEFAULT signifie PKCS pour BCE, NONE pour GCM et PKCS pour CBC. |
aad |
pyspark.sql.Column ou str, facultatif |
Données authentifiées supplémentaires facultatives. Uniquement pris en charge pour le mode GCM. Il peut s’agir de n’importe quelle entrée de formulaire libre et doit être fournie pour le chiffrement et le déchiffrement. |
Retours
pyspark.sql.Column: nouvelle colonne qui contient une valeur déchiffrée ou une valeur NULL.
Examples
Exemple 1 : Déchiffrer des données avec clé, mode, remplissage et 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 |
+-------------------------------------------------------------------------+
Exemple 2 : Échec du déchiffrement des données avec clé, mode, remplissage et 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 |
+-------------------------------------------------------------------------+
Exemple 3 : Déchiffrer les données avec clé, mode et remplissage
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 |
+----------------------------------------------------------------------+
Exemple 4 : Déchiffrer les données avec la clé et le mode
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 |
+----------------------------------------------------------------------+
Exemple 5 : Déchiffrer des données avec une clé
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 |
+------------------------------------------------------------------+