Delen via


try_aes_decrypt

Dit is een speciale versie van aes_decrypt die dezelfde bewerking uitvoert, maar retourneert een NULL-waarde in plaats van een fout op te geven als de ontsleuteling niet kan worden uitgevoerd. Retourneert een ontsleutelde waarde van het gebruik van input AES met modepadding. Sleutellengten van 16, 24 en 32 bits worden ondersteund. Ondersteunde combinaties van (, padding) zijn (ECBmode, PKCS), (GCM, NONE) en (CBC, PKCS). Optionele aanvullende geverifieerde gegevens (AAD) worden alleen ondersteund voor GCM. Indien opgegeven voor versleuteling, moet de identieke AAD-waarde worden opgegeven voor ontsleuteling. De standaardmodus is GCM.

Syntaxis

from pyspark.sql import functions as sf

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

Parameterwaarden

Kenmerk Typologie Description
input pyspark.sql.Column of str De binaire waarde die moet worden ontsleuteld.
key pyspark.sql.Column of str De wachtwoordzin die moet worden gebruikt om de gegevens te ontsleutelen.
mode pyspark.sql.Column of str, optioneel Hiermee geeft u op welke blokcoderingsmodus moet worden gebruikt om berichten te ontsleutelen. Geldige modi: ECB, GCM, CBC.
padding pyspark.sql.Column of str, optioneel Hiermee geeft u op hoe u berichten kunt opvullen waarvan de lengte geen veelvoud is van de blokgrootte. Geldige waarden: PKCS, NONE, DEFAULT. De STANDAARDopvulling betekent PKCS voor ECB, NONE voor GCM en PKCS voor CBC.
aad pyspark.sql.Column of str, optioneel Optionele aanvullende geverifieerde gegevens. Alleen ondersteund voor de GCM-modus. Dit kan elke vrije invoer zijn en moet worden opgegeven voor zowel versleuteling als ontsleuteling.

Retouren

pyspark.sql.Column: Een nieuwe kolom die een ontsleutelde waarde of een NULL-waarde bevat.

Voorbeelden

Voorbeeld 1: Gegevens ontsleutelen met sleutel, modus, opvulling en 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                                                                    |
+-------------------------------------------------------------------------+

Voorbeeld 2: Kan gegevens niet ontsleutelen met sleutel, modus, opvulling en 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                                                                     |
+-------------------------------------------------------------------------+

Voorbeeld 3: Gegevens ontsleutelen met sleutel, modus en opvulling

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                                                                 |
+----------------------------------------------------------------------+

Voorbeeld 4: Gegevens ontsleutelen met sleutel en modus

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                                                                 |
+----------------------------------------------------------------------+

Voorbeeld 5: Gegevens ontsleutelen met sleutel

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                                                             |
+------------------------------------------------------------------+