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