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
 - Важно безопасно хранить ключ шифрования
 - Результат всегда в бинарном формате