Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
Devuelve un valor cifrado de uso de input AES en dado mode con el especificado padding. Se admiten longitudes de clave de 16, 24 y 32 bits. Las combinaciones admitidas de (mode, padding) son (ECB, PKCS), (GCM, NONE) y (CBC, PKCS). Los vectores de inicialización opcionales (IVs) solo se admiten para los modos CBC y GCM. Estos deben ser de 16 bytes para CBC y 12 bytes para GCM. Si no se proporciona, se generará un vector aleatorio y se anteponerá a la salida. Los datos autenticados adicionales opcionales (AAD) solo se admiten para GCM. Si se proporciona para el cifrado, se debe proporcionar el valor de AAD idéntico para el descifrado. El modo predeterminado es GCM.
Syntax
from pyspark.sql import functions as sf
sf.aes_encrypt(input, key, mode=None, padding=None, iv=None, aad=None)
Parámetros
| Parámetro | Tipo | Description |
|---|---|---|
input |
pyspark.sql.Column o str |
Valor binario que se va a cifrar. |
key |
pyspark.sql.Column o str |
Frase de contraseña que se va a usar para cifrar los datos. |
mode |
pyspark.sql.Column o str, opcional |
Especifica qué modo de cifrado de bloques se debe usar para cifrar los mensajes. Modos válidos: ECB, GCM, CBC. |
padding |
pyspark.sql.Column o str, opcional |
Especifica cómo rellenar los mensajes cuya longitud no es un múltiplo del tamaño del bloque. Valores válidos: PKCS, NONE, DEFAULT. El relleno DEFAULT significa PKCS para ECB, NONE para GCM y PKCS para CBC. |
iv |
pyspark.sql.Column o str, opcional |
Vector de inicialización opcional. Solo se admite para los modos CBC y GCM. Valores válidos: None o "". Matriz de 16 bytes para el modo CBC. Matriz de 12 bytes para el modo GCM. |
aad |
pyspark.sql.Column o str, opcional |
Datos autenticados adicionales opcionales. Solo se admite para el modo GCM. Puede ser cualquier entrada de forma libre y debe proporcionarse para el cifrado y el descifrado. |
Devoluciones
pyspark.sql.Column: una nueva columna que contiene un valor cifrado.
Examples
Ejemplo 1: Cifrado de datos con clave, modo, relleno, iv y aad
from pyspark.sql import functions as sf
df = spark.createDataFrame([(
"Spark", "abcdefghijklmnop12345678ABCDEFGH", "GCM", "DEFAULT",
"000000000000000000000000", "This is an AAD mixed into the input",)],
["input", "key", "mode", "padding", "iv", "aad"]
)
df.select(sf.base64(sf.aes_encrypt(
df.input, df.key, "mode", df.padding, sf.to_binary(df.iv, sf.lit("hex")), df.aad)
)).show(truncate=False)
+-----------------------------------------------------------------------+
|base64(aes_encrypt(input, key, mode, padding, to_binary(iv, hex), aad))|
+-----------------------------------------------------------------------+
|AAAAAAAAAAAAAAAAQiYi+sTLm7KD9UcZ2nlRdYDe/PX4 |
+-----------------------------------------------------------------------+
Ejemplo 2: Cifrado de datos con clave, modo, relleno e iv
from pyspark.sql import functions as sf
df = spark.createDataFrame([(
"Spark", "abcdefghijklmnop12345678ABCDEFGH", "GCM", "DEFAULT",
"000000000000000000000000", "This is an AAD mixed into the input",)],
["input", "key", "mode", "padding", "iv", "aad"]
)
df.select(sf.base64(sf.aes_encrypt(
df.input, df.key, "mode", df.padding, sf.to_binary(df.iv, sf.lit("hex")))
)).show(truncate=False)
+--------------------------------------------------------------------+
|base64(aes_encrypt(input, key, mode, padding, to_binary(iv, hex), ))|
+--------------------------------------------------------------------+
|AAAAAAAAAAAAAAAAQiYi+sRNYDAOTjdSEcYBFsAWPL1f |
+--------------------------------------------------------------------+
Ejemplo 3: Cifrado de datos con clave, modo y relleno
from pyspark.sql import functions as sf
df = spark.createDataFrame([(
"Spark SQL", "1234567890abcdef", "ECB", "PKCS",)],
["input", "key", "mode", "padding"]
)
df.select(sf.aes_decrypt(sf.aes_encrypt(df.input, df.key, "mode", df.padding),
df.key, df.mode, df.padding
).cast("STRING")).show(truncate=False)
+---------------------------------------------------------------------------------------------+
|CAST(aes_decrypt(aes_encrypt(input, key, mode, padding, , ), key, mode, padding, ) AS STRING)|
+---------------------------------------------------------------------------------------------+
|Spark SQL |
+---------------------------------------------------------------------------------------------+
Ejemplo 4: Cifrado de datos con clave y modo
from pyspark.sql import functions as sf
df = spark.createDataFrame([(
"Spark SQL", "0000111122223333", "ECB",)],
["input", "key", "mode"]
)
df.select(sf.aes_decrypt(sf.aes_encrypt(df.input, df.key, "mode"),
df.key, df.mode
).cast("STRING")).show(truncate=False)
+---------------------------------------------------------------------------------------------+
|CAST(aes_decrypt(aes_encrypt(input, key, mode, DEFAULT, , ), key, mode, DEFAULT, ) AS STRING)|
+---------------------------------------------------------------------------------------------+
|Spark SQL |
+---------------------------------------------------------------------------------------------+
Ejemplo 5: Cifrado de datos con clave
from pyspark.sql import functions as sf
df = spark.createDataFrame([(
"Spark SQL", "abcdefghijklmnop",)],
["input", "key"]
)
df.select(sf.aes_decrypt(
sf.unbase64(sf.base64(sf.aes_encrypt(df.input, df.key))), df.key
).cast("STRING")).show(truncate=False)
+-------------------------------------------------------------------------------------------------------------+
|CAST(aes_decrypt(unbase64(base64(aes_encrypt(input, key, GCM, DEFAULT, , ))), key, GCM, DEFAULT, ) AS STRING)|
+-------------------------------------------------------------------------------------------------------------+
|Spark SQL |
+-------------------------------------------------------------------------------------------------------------+