Skip to content

aes_encrypt

Теги: функции шифрования

Описание

Функция aes_encrypt() шифрует данные с использованием алгоритма AES (Advanced Encryption Standard).

Параметры

  • col: Column - данные для шифрования
  • key: Column - ключ шифрования (16, 24 или 32 байта для AES-128, AES-192 или AES-256)

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

Column - зашифрованные данные в бинарном формате

Пример

from pyspark.sql import SparkSession
from pyspark.sql.functions import aes_encrypt, lit, hex

# Создаем Spark сессию
spark = SparkSession.builder.appName("aes_encrypt_example").getOrCreate()

# Создаем DataFrame с секретными данными
data = [("secret message",), ("confidential data",)]
df = spark.createDataFrame(data, ["plaintext"])

# Шифруем данные (используем 16-байтный ключ для AES-128)
key = "1234567890abcdef"
df = df.withColumn("encrypted", aes_encrypt("plaintext", lit(key)))
# Для отображения используем hex
df = df.withColumn("hex_view", hex("encrypted"))
df.show(truncate=False)

# Вывод:
# +------------------+--------------------+------------------------------------------+
# |plaintext         |encrypted           |hex_view                                  |
# +------------------+--------------------+------------------------------------------+
# |secret message    |[encrypted bytes]   |A7B3C4D5E6F7G8H9I0J1K2L3M4N5O6P7        |
# |confidential data |[encrypted bytes]   |B8C4D5E6F7G8H9I0J1K2L3M4N5O6P7Q8        |
# +------------------+--------------------+------------------------------------------+

Примечания

  • Использует алгоритм AES в режиме CBC с PKCS5 паддингом
  • Длина ключа определяет версию AES:
  • 16 байт = AES-128
  • 24 байта = AES-192
  • 32 байта = AES-256
  • Возвращает NULL, если входные данные или ключ NULL
  • Для расшифровки используйте aes_decrypt или try_aes_decrypt
  • Важно безопасно хранить ключ шифрования
  • Результат всегда в бинарном формате