Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Devuelve el código de autenticación por hash con clave (HMAC) de message usar key y el hash algorithmdado . El resultado se devuelve como bytes MAC en bruto; envuélvelo con :func:hex o :func:base64 para un valor textual. El algoritmo predeterminado es SHA-256.
Un HMAC verifica tanto la integridad como la autenticidad de un mensaje utilizando un secreto keycompartido: un destinatario que lo posea key puede recalcular el código y confirmar que el mensaje no fue alterado y proviene de una parte que conoce la clave. Los usos comunes incluyen la firma de solicitudes de API, la validación de cargas útiles de webhook y la obtención de claves de firma encadenando llamadas HMAC (por ejemplo, AWS Signature Versión 4).
Syntax
from pyspark.sql import functions as sf
sf.hmac(key, message, algorithm=None)
Parámetros
| Parameter | Tipo | Description |
|---|---|---|
key |
pyspark.sql.Column o str |
La clave secreta, como valor binario. |
message |
pyspark.sql.Column o str |
El mensaje para autenticar, como un valor binario. |
algorithm |
pyspark.sql.Column o str, opcional |
Algoritmo hash. Valores válidos: SHA-224, SHA-256, SHA-384, SHA-512, SHA-1, MD5. El predeterminado es SHA-256. |
Returns
pyspark.sql.Column: Una nueva columna que contiene los bytes en bruto de HMAC.
Examples
Ejemplo 1: Calcular el HMAC con el algoritmo SHA-256 por defecto
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|
+----------------------------------------------------------------+
Ejemplo 2: Calcular el HMAC con un 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|
+----------------------------------------+