try_aes_decrypt
これはaes_decryptの特別なバージョンであり、同じ操作を実行しますが、復号化が実行できない場合はエラーを発生させる代わりに NULL 値を返します。paddingを使用して、 modeの AES を使用してinputを復号化した値を返します。16、24、32 ビットのキーの長さがサポートされています。( mode 、 padding ) のサポートされている組み合わせは ( ECB 、 PKCS )、 ( GCM 、 NONE )、および ( CBC 、 PKCS ) です。オプションの追加認証データ (AAD) は GCM でのみサポートされます。暗号化に指定されている場合、復号化にも同じ AAD 値を指定する必要があります。デフォルトモードは GCM です。
構文
from pyspark.sql import functions as sf
sf.try_aes_decrypt(input, key, mode=None, padding=None, aad=None)
パラメーター
パラメーター | Type | 説明 |
|---|---|---|
|
| 復号化するバイナリ値。 |
|
| データを復号化するために使用するパスフレーズ。 |
|
| メッセージを復号化するために使用するブロック暗号モードを指定します。有効なモード: ECB、GCM、CBC。 |
|
| 長さがブロック サイズの倍数ではないメッセージを埋め込む方法を指定します。有効な値: PKCS、NONE、安全。 当然のパディングとは、ECB の場合は PKCS、GCM の場合は NONE、CBC の場合は PKCS を意味します。 |
|
| オプションの追加認証データ。GCM モードのみサポートされます。これは任意の自由形式の入力にすることができ、暗号化と復号化の両方に提供する必要があります。 |
戻り値
pyspark.sql.Column: 暗号化解除された値または NULL 値を含む新しい列。
例
例1 : キー、モード、パディング、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 |
+-------------------------------------------------------------------------+
例2 : キー、モード、パディング、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 |
+-------------------------------------------------------------------------+
例3 : キー、モード、パディングを使用してデータを復号する
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 |
+----------------------------------------------------------------------+
例4 : キーとモードを使用してデータを復号する
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 |
+----------------------------------------------------------------------+
例5 : キーを使用してデータを復号化する
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 |
+------------------------------------------------------------------+