Teilen über


try_aes_decrypt

Dies ist eine spezielle Version, die aes_decrypt denselben Vorgang ausführt, aber einen NULL-Wert zurückgibt, anstatt einen Fehler zu auslösen, wenn die Entschlüsselung nicht ausgeführt werden kann. Gibt einen entschlüsselten Wert der Verwendung von input AES in mode mit padding. Schlüssellängen von 16, 24 und 32 Bit werden unterstützt. Unterstützte Kombinationen von (, padding) sind (ECBmode, PKCS), (GCM, NONE) und (CBC, PKCS). Optionale zusätzliche authentifizierte Daten (AAD) werden nur für GCM unterstützt. Wenn für die Verschlüsselung angegeben, muss der identische AAD-Wert für die Entschlüsselung bereitgestellt werden. Der Standardmodus ist GCM.

Syntax

from pyspark.sql import functions as sf

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

Die Parameter

Parameter Typ Description
input pyspark.sql.Column oder str Der zu entschlüsselnde Binärwert.
key pyspark.sql.Column oder str Die Passphrase, die zum Entschlüsseln der Daten verwendet werden soll.
mode pyspark.sql.Column oder str, optional Gibt an, welcher Blockchiffremodus zum Entschlüsseln von Nachrichten verwendet werden soll. Gültige Modi: ECB, GCM, CBC.
padding pyspark.sql.Column oder str, optional Gibt an, wie Nachrichten gespeichert werden, deren Länge kein Vielfaches der Blockgröße ist. Gültige Werte: PKCS, NONE, DEFAULT. Der STANDARDabstand bedeutet PKCS für ECB, NONE für GCM und PKCS für CBC.
aad pyspark.sql.Column oder str, optional Optionale zusätzliche authentifizierte Daten. Wird nur für den GCM-Modus unterstützt. Dies kann eine beliebige Freiformeingabe sein und muss sowohl für die Verschlüsselung als auch für die Entschlüsselung bereitgestellt werden.

Rückkehr

pyspark.sql.Column: Eine neue Spalte, die einen entschlüsselten Wert oder einen NULL-Wert enthält.

Examples

Beispiel 1: Entschlüsseln von Daten mit Schlüssel, Modus, Abstand und 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                                                                    |
+-------------------------------------------------------------------------+

Beispiel 2: Fehler beim Entschlüsseln von Daten mit Schlüssel, Modus, Abstand und 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                                                                     |
+-------------------------------------------------------------------------+

Beispiel 3: Entschlüsseln von Daten mit Schlüssel, Modus und Abstand

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

Beispiel 4: Entschlüsseln von Daten mit Schlüssel und 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                                                                 |
+----------------------------------------------------------------------+

Beispiel 5: Entschlüsseln von Daten mit Schlüssel

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