aes_decrypt
Retorna um valor descriptografado de input usando AES em mode com padding. São suportados comprimentos de chave de 16, 24 e 32 bits. Combinações suportadas de (mode, padding) são (ECB, PKCS), (GCM, NONE) e (CBC, PKCS). Os dados autenticados adicionais opcionais (AAD) são suportados apenas para GCM. Caso seja fornecido para criptografia, o mesmo valor AAD deverá ser fornecido para descriptografia. O modo default é GCM.
Sintaxe
from pyspark.sql import functions as sf
sf.aes_decrypt(input, key, mode=None, padding=None, aad=None)
Parâmetros
Parâmetro | Tipo | Descrição |
|---|---|---|
|
| O valor binário a ser descriptografado. |
|
| A senha a ser usada para descriptografar os dados. |
|
| Especifica qual modo de cifra de bloco deve ser usado para descriptografar as mensagens. Modos válidos: ECB, GCM, CBC. |
|
| Especifica como preencher mensagens cujo comprimento não é um múltiplo do tamanho do bloco. Valores válidos: PKCS, NENHUM, padrão. O preenchimento padrão significa PKCS para o BCE, NENHUM para o GCM e PKCS para o CBC. |
|
| Dados adicionais autenticados opcionais. Compatível apenas com o modo GCM. Este pode ser qualquer entrada de formato livre e deve ser fornecido tanto para criptografia quanto para descriptografia. |
Devoluções
pyspark.sql.ColumnUma nova coluna que contém um valor descriptografado.
Exemplos
Exemplo 1 : Descriptografar dados com key, modo, preenchimento e aad
from pyspark.sql import functions as sf
df = spark.createDataFrame([(
"AAAAAAAAAAAAAAAAQiYi+sTLm7KD9UcZ2nlRdYDe/PX4",
"abcdefghijklmnop12345678ABCDEFGH", "GCM", "DEFAULT",
"This is an AAD mixed into the input",)],
["input", "key", "mode", "padding", "aad"]
)
df.select(sf.aes_decrypt(
sf.unbase64(df.input), df.key, "mode", df.padding, df.aad
).cast("STRING")).show(truncate=False)
+---------------------------------------------------------------------+
|CAST(aes_decrypt(unbase64(input), key, mode, padding, aad) AS STRING)|
+---------------------------------------------------------------------+
|Spark |
+---------------------------------------------------------------------+
Exemplo 2 : Descriptografar dados com key, modo e preenchimento
from pyspark.sql import functions as sf
df = spark.createDataFrame([(
"AAAAAAAAAAAAAAAAAAAAAPSd4mWyMZ5mhvjiAPQJnfg=",
"abcdefghijklmnop12345678ABCDEFGH", "CBC", "DEFAULT",)],
["input", "key", "mode", "padding"]
)
df.select(sf.aes_decrypt(
sf.unbase64(df.input), df.key, "mode", df.padding
).cast("STRING")).show(truncate=False)
+------------------------------------------------------------------+
|CAST(aes_decrypt(unbase64(input), key, mode, padding, ) AS STRING)|
+------------------------------------------------------------------+
|Spark |
+------------------------------------------------------------------+
Exemplo 3 : Descriptografar dados com key e modo
from pyspark.sql import functions as sf
df = spark.createDataFrame([(
"AAAAAAAAAAAAAAAAAAAAAPSd4mWyMZ5mhvjiAPQJnfg=",
"abcdefghijklmnop12345678ABCDEFGH", "CBC", "DEFAULT",)],
["input", "key", "mode", "padding"]
)
df.select(sf.aes_decrypt(
sf.unbase64(df.input), df.key, "mode"
).cast("STRING")).show(truncate=False)
+------------------------------------------------------------------+
|CAST(aes_decrypt(unbase64(input), key, mode, DEFAULT, ) AS STRING)|
+------------------------------------------------------------------+
|Spark |
+------------------------------------------------------------------+
Exemplo 4 : Descriptografar dados com key
from pyspark.sql import functions as sf
df = spark.createDataFrame([(
"83F16B2AA704794132802D248E6BFD4E380078182D1544813898AC97E709B28A94",
"0000111122223333",)],
["input", "key"]
)
df.select(sf.aes_decrypt(
sf.unhex(df.input), df.key
).cast("STRING")).show(truncate=False)
+--------------------------------------------------------------+
|CAST(aes_decrypt(unhex(input), key, GCM, DEFAULT, ) AS STRING)|
+--------------------------------------------------------------+
|Spark |
+--------------------------------------------------------------+