hmac
Retorna o código de autenticação de mensagem hash baseado em chave (HMAC) de message usando key e o algorithm hash fornecido. O resultado é retornado como bytes MAC brutos; faça o wrap com :func:hex ou :func:base64 para obter um valor textual. O algoritmo default é SHA-256.
Um HMAC verifica tanto a integridade quanto a autenticidade de uma mensagem usando um segredo compartilhado key: um destinatário que possui o mesmo key pode recalcular o código e confirmar que a mensagem não foi alterada e veio de uma parte que conhece a key. Os usos comuns incluem a assinatura de solicitações de API, a validação de payloads de webhook e a derivação de chaves de assinatura encadeando chamadas HMAC (por exemplo, AWS Signature Version 4).
Sintaxe
from pyspark.sql import functions as sf
sf.hmac(key, message, algorithm=None)
Parâmetros
Parâmetro | Tipo | Descrição |
|---|---|---|
|
| A chave secreta, como um valor binário. |
|
| A mensagem a ser autenticada, como um valor binário. |
|
| O algoritmo de hash. Valores válidos: SHA-224, SHA-256, SHA-384, SHA-512, SHA-1, MD5. O default é SHA-256. |
Retorna
pyspark.sql.Column: A new column that contains the raw HMAC bytes.
Exemplos
Example 1 : Compute o HMAC com o algoritmo SHA-256 default
from pyspark.sql import functions as sf
df = spark.createDataFrame([("key", "message")], ["key", "message"])
df.select(sf.hex(sf.hmac(df.key, df.message))).show(truncate=False)
+----------------------------------------------------------------+
|hex(hmac(key, message, SHA-256)) |
+----------------------------------------------------------------+
|6E9EF29B75FFFC5B7ABAE527D58FDADB2FE42E7219011976917343065F58ED4A|
+----------------------------------------------------------------+
Exemplo 2 : Compute o HMAC com um algoritmo explícito
from pyspark.sql import functions as sf
df = spark.createDataFrame([("key", "message")], ["key", "message"])
df.select(sf.hex(sf.hmac(df.key, df.message, sf.lit("SHA-1")))).show(truncate=False)
+----------------------------------------+
|hex(hmac(key, message, SHA-1)) |
+----------------------------------------+
|2088DF74D5F2146B48146CAF4965377E9D0BE3A4|
+----------------------------------------+