Compartilhar via


aes_decrypt

Retorna um valor descriptografado do uso do input AES mode com padding. Há suporte para comprimentos de chave de 16, 24 e 32 bits. As combinações com suporte de (mode, padding) são (ECB, PKCS), (GCM, NONE) e (CBC, PKCS). Os dados autenticados adicionais opcionais (AAD) só têm suporte para GCM. Se for fornecido para criptografia, o valor idêntico do AAD deverá ser fornecido para descriptografia. O modo padrão é 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 Description
input pyspark.sql.Column ou str O valor binário a ser descriptografado.
key pyspark.sql.Column ou str A frase secreta a ser usada para descriptografar os dados.
mode pyspark.sql.Column ou str, opcional Especifica qual modo de criptografia de bloco deve ser usado para descriptografar mensagens. Modos válidos: BCE, GCM, CBC.
padding pyspark.sql.Column ou str, opcional Especifica como armazenar mensagens cujo comprimento não é um múltiplo do tamanho do bloco. Valores válidos: PKCS, NONE, DEFAULT. O preenchimento PADRÃO significa PKCS para BCE, NONE para GCM e PKCS para CBC.
aad pyspark.sql.Column ou str, opcional Dados autenticados adicionais opcionais. Só há suporte para o modo GCM. Isso pode ser qualquer entrada de forma livre e deve ser fornecida para criptografia e descriptografia.

Devoluções

pyspark.sql.Column: uma nova coluna que contém um valor descriptografado.

Exemplos

Exemplo 1: Descriptografar dados com chave, 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 chave, 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 chave 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 chave

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                                                         |
+--------------------------------------------------------------+