Skip to content

try_aes_decrypt(input, key, mode, padding)

Описание

Функция try_aes_decrypt() пытается расшифровать данные, зашифрованные с помощью AES, и возвращает NULL в случае ошибки вместо вызова исключения.

Параметры

  • input: Column - зашифрованные данные
  • key: Column - ключ шифрования
  • mode: String - режим шифрования (например, "ECB", "CBC")
  • padding: String - метод дополнения (например, "PKCS")

Возвращаемое значение

Binary - расшифрованные данные или NULL в случае ошибки

Пример использования

from pyspark.sql.functions import try_aes_decrypt, aes_encrypt
from pyspark.sql import SparkSession

# Создаем SparkSession
spark = SparkSession.builder.appName("try_aes_decrypt_example").getOrCreate()

# Создаем DataFrame с данными
data = [("Hello",), ("World",), ("Spark",)]
df = spark.createDataFrame(data, ["text"])

# Шифруем и расшифровываем данные
key = "1234567890123456"  # 16-байтовый ключ
df = df.withColumn("encrypted", aes_encrypt("text", key, "ECB", "PKCS"))
result = df.select(
    "text",
    try_aes_decrypt("encrypted", key, "ECB", "PKCS").alias("decrypted")
).show(truncate=False)

# Результат:
# +-----+---------+
# |text |decrypted|
# +-----+---------+
# |Hello|Hello    |
# |World|World    |
# |Spark|Spark    |
# +-----+---------+

Примечания

  • В случае ошибки дешифрования возвращает NULL вместо вызова исключения
  • Для шифрования используйте aes_encrypt()
  • Для обработки ошибок также используйте:
  • assert_true() для проверки условий
  • raise_error() для вызова ошибки с сообщением