メインコンテンツまでスキップ

aes_decrypt

paddingを使用して、 modeの AES を使用してinputを復号化した値を返します。16、24、32 ビットのキーの長さがサポートされています。( modepadding ) のサポートされている組み合わせは ( ECBPKCS )、 ( GCMNONE )、および ( CBCPKCS ) です。オプションの追加認証データ (AAD) は GCM でのみサポートされます。暗号化に指定されている場合、復号化にも同じ AAD 値を指定する必要があります。デフォルトモードは GCM です。

構文

Python
from pyspark.sql import functions as sf

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

パラメーター

パラメーター

Type

説明

input

pyspark.sql.Column または文字列

復号化するバイナリ値。

key

pyspark.sql.Column または文字列

データを復号化するために使用するパスフレーズ。

mode

pyspark.sql.Column または文字列(オプション)

メッセージを復号化するために使用するブロック暗号モードを指定します。有効なモード: ECB、GCM、CBC。

padding

pyspark.sql.Column または文字列(オプション)

長さがブロック サイズの倍数ではないメッセージを埋め込む方法を指定します。有効な値: PKCS、NONE、安全。 当然のパディングとは、ECB の場合は PKCS、GCM の場合は NONE、CBC の場合は PKCS を意味します。

aad

pyspark.sql.Column または文字列(オプション)

オプションの追加認証データ。GCM モードのみサポートされます。これは任意の自由形式の入力にすることができ、暗号化と復号化の両方に提供する必要があります。

戻り値

pyspark.sql.Column: 復号化された値を含む新しい列。

例1 : キー、モード、パディング、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.aes_decrypt(
sf.unbase64(df.input), df.key, "mode", df.padding, df.aad
).cast("STRING")).show(truncate=False)
Output
+---------------------------------------------------------------------+
|CAST(aes_decrypt(unbase64(input), key, mode, padding, aad) AS STRING)|
+---------------------------------------------------------------------+
|Spark |
+---------------------------------------------------------------------+

例2 : キー、モード、パディングを使用してデータを復号する

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([(
"AAAAAAAAAAAAAAAAAAAAAPSd4mWyMZ5mhvjiAPQJnfg=",
"abcdefghijklmnop12345678ABCDEFGH", "CBC", "DEFAULT",)],
["input", "key", "mode", "padding"]
)
df.select(sf.aes_decrypt(
sf.unbase64(df.input), df.key, "mode", df.padding
).cast("STRING")).show(truncate=False)
Output
+------------------------------------------------------------------+
|CAST(aes_decrypt(unbase64(input), key, mode, padding, ) AS STRING)|
+------------------------------------------------------------------+
|Spark |
+------------------------------------------------------------------+

例3 : キーとモードを使用してデータを復号する

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([(
"AAAAAAAAAAAAAAAAAAAAAPSd4mWyMZ5mhvjiAPQJnfg=",
"abcdefghijklmnop12345678ABCDEFGH", "CBC", "DEFAULT",)],
["input", "key", "mode", "padding"]
)
df.select(sf.aes_decrypt(
sf.unbase64(df.input), df.key, "mode"
).cast("STRING")).show(truncate=False)
Output
+------------------------------------------------------------------+
|CAST(aes_decrypt(unbase64(input), key, mode, DEFAULT, ) AS STRING)|
+------------------------------------------------------------------+
|Spark |
+------------------------------------------------------------------+

例4 : キーを使用してデータを復号化する

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([(
"83F16B2AA704794132802D248E6BFD4E380078182D1544813898AC97E709B28A94",
"0000111122223333",)],
["input", "key"]
)
df.select(sf.aes_decrypt(
sf.unhex(df.input), df.key
).cast("STRING")).show(truncate=False)
Output
+--------------------------------------------------------------+
|CAST(aes_decrypt(unhex(input), key, GCM, DEFAULT, ) AS STRING)|
+--------------------------------------------------------------+
|Spark |
+--------------------------------------------------------------+