Aller au contenu principal

try_aes_decrypt

Il s'agit d'une version spéciale de aes_decrypt qui effectue la même Opération, mais renvoie une valeur NULL au lieu de générer une erreur si le déchiffrement ne peut pas être effectué. Renvoie une valeur déchiffrée de input à l'aide d'AES dans mode avec padding. 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. S'il est fourni pour le chiffrement, la valeur AAD identique doit être fournie pour le déchiffrement. Le mode default est GCM.

Syntaxe

Python
from pyspark.sql import functions as sf

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

parameter

parameter

Type

Description

input

pyspark.sql.Column ou str

La valeur binaire à déchiffrer.

key

pyspark.sql.Column ou str

La phrase secrète à utiliser pour déchiffrer les données.

mode

pyspark.sql.Column ou str, facultatif

Spécifie le mode de chiffrement par blocs qui doit être utilisé pour déchiffrer les messages. Modes valides : ECB, 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 de bloc. Valeurs valides : PKCS, NONE, DEFAULT. Le remplissage DEFAULT signifie PKCS pour ECB, NONE pour GCM et PKCS pour CBC.

aad

pyspark.sql.Column ou str, facultatif

Données authentifiées supplémentaires facultatives. Pris en charge uniquement pour le mode GCM. Il peut s'agir de toute entrée de forme libre et doit être fournie pour le chiffrement et le déchiffrement.

parameter

Type

Description

input

pyspark.sql.Column ou str

La valeur binaire à déchiffrer.

key

pyspark.sql.Column ou str

La phrase secrète à utiliser pour déchiffrer les données.

mode

pyspark.sql.Column ou str, facultatif

Spécifie le mode de chiffrement par blocs qui doit être utilisé pour déchiffrer les messages. Modes valides : ECB, 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 de bloc. Valeurs valides : PKCS, NONE, DEFAULT. Le remplissage DEFAULT signifie PKCS pour ECB, NONE pour GCM et PKCS pour CBC.

aad

pyspark.sql.Column ou str, facultatif

Données authentifiées supplémentaires facultatives. Pris en charge uniquement pour le mode GCM. Il peut s'agir de toute entrée de forme libre et doit être fournie pour le chiffrement et le déchiffrement.

Renvoie

pyspark.sql.Column: Une nouvelle colonne qui contient une valeur décryptée ou une valeur NULL.

Exemples

Exemple 1 : Déchiffrer les données avec clé, mode, remplissage et aad

Python
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)
Output
+-------------------------------------------------------------------------+
|CAST(try_aes_decrypt(unbase64(input), key, mode, padding, aad) AS STRING)|
+-------------------------------------------------------------------------+
|Spark |
+-------------------------------------------------------------------------+

Exemple 2 : Échec du déchiffrement des données avec la clé, le mode, le remplissage et l'AAD

Python
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)
Output
+-------------------------------------------------------------------------+
|CAST(try_aes_decrypt(unbase64(input), key, mode, padding, aad) AS STRING)|
+-------------------------------------------------------------------------+
|NULL |
+-------------------------------------------------------------------------+

Exemple 3 : déchiffrez les données avec la clé, le mode et le remplissage

Python
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)
Output
+----------------------------------------------------------------------+
|CAST(try_aes_decrypt(unbase64(input), key, mode, padding, ) AS STRING)|
+----------------------------------------------------------------------+
|Spark |
+----------------------------------------------------------------------+

Exemple 4 : déchiffrer des données avec une clé et un mode

Python
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)
Output
+----------------------------------------------------------------------+
|CAST(try_aes_decrypt(unbase64(input), key, mode, DEFAULT, ) AS STRING)|
+----------------------------------------------------------------------+
|Spark |
+----------------------------------------------------------------------+

**Exemple 5** : Décrypter les données avec une clé

Python
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)
Output
+------------------------------------------------------------------+
|CAST(try_aes_decrypt(unhex(input), key, GCM, DEFAULT, ) AS STRING)|
+------------------------------------------------------------------+
|Spark |
+------------------------------------------------------------------+