Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Возвращает расшифрованное значение input использования AES в modepadding. Поддерживаются длины ключей 16, 24 и 32 бита. Поддерживаемые сочетания (, padding) — (ECBmode, PKCS), (GCM, NONE) и (CBC, PKCS). Необязательные дополнительные данные, прошедшие проверку подлинности (AAD), поддерживаются только для GCM. При условии шифрования для расшифровки необходимо указать идентичное значение AAD. Режим по умолчанию — GCM.
Синтаксис
from pyspark.sql import functions as sf
sf.aes_decrypt(input, key, mode=None, padding=None, aad=None)
Параметры
| Параметр | Тип | Description |
|---|---|---|
input |
pyspark.sql.Column или str |
Двоичное значение для расшифровки. |
key |
pyspark.sql.Column или str |
Парольная фраза, используемая для расшифровки данных. |
mode |
pyspark.sql.Column или str, необязательный |
Указывает, какой режим блочного шифра следует использовать для расшифровки сообщений. Допустимые режимы: ECB, GCM, CBC. |
padding |
pyspark.sql.Column или str, необязательный |
Указывает, как заполнять сообщения, длина которых не является кратной размером блока. Допустимые значения: PKCS, NONE, DEFAULT. Заполнение ПО УМОЛЧАНИю означает PKCS для ECB, NONE для GCM и PKCS для CBC. |
aad |
pyspark.sql.Column или str, необязательный |
Необязательные дополнительные данные, прошедшие проверку подлинности. Поддерживается только для режима GCM. Это может быть любой вход в свободной форме и должен быть предоставлен как для шифрования, так и для расшифровки. |
Возвраты
pyspark.sql.Column: новый столбец, содержащий расшифрованное значение.
Примеры
Пример 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.aes_decrypt(
sf.unbase64(df.input), df.key, "mode", df.padding, df.aad
).cast("STRING")).show(truncate=False)
+---------------------------------------------------------------------+
|CAST(aes_decrypt(unbase64(input), key, mode, padding, aad) AS STRING)|
+---------------------------------------------------------------------+
|Spark |
+---------------------------------------------------------------------+
Пример 2. Расшифровка данных с ключом, режимом и заполнением
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)
+------------------------------------------------------------------+
|CAST(aes_decrypt(unbase64(input), key, mode, padding, ) AS STRING)|
+------------------------------------------------------------------+
|Spark |
+------------------------------------------------------------------+
Пример 3. Расшифровка данных с помощью ключа и режима
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)
+------------------------------------------------------------------+
|CAST(aes_decrypt(unbase64(input), key, mode, DEFAULT, ) AS STRING)|
+------------------------------------------------------------------+
|Spark |
+------------------------------------------------------------------+
Пример 4. Расшифровка данных с помощью ключа
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)
+--------------------------------------------------------------+
|CAST(aes_decrypt(unhex(input), key, GCM, DEFAULT, ) AS STRING)|
+--------------------------------------------------------------+
|Spark |
+--------------------------------------------------------------+