hmac
Renvoie le code d’authentification de message avec hachage de clé (HMAC) de message à l’aide de key et du hachage donné algorithm. Le résultat est renvoyé sous forme d’octets MAC bruts ; enveloppez-le avec :func:hex ou :func:base64 pour obtenir une valeur textuelle. L’algorithme default est SHA-256.
Un HMAC vérifie à la fois l’intégrité et l’authenticité d’un message à l’aide d’un secret partagé key: un destinataire qui détient le même key peut recalculer le code et confirmer que le message n’a pas été altéré et provient d’une partie qui connaît la clé. Les utilisations courantes incluent la signature de requêtes API, la validation de charges utiles de webhook et la dérivation de clés de signature par enchaînement d’appels HMAC (par exemple, AWS Signature Version 4).
Syntaxe
from pyspark.sql import functions as sf
sf.hmac(key, message, algorithm=None)
parameter
parameter | Type | Description |
|---|---|---|
|
| La clé secrète, sous forme de valeur binaire. |
|
| Le message à authentifier, sous forme de valeur binaire. |
|
| L’algorithme de hachage. Valeurs valides : SHA-224, SHA-256, SHA-384, SHA-512, SHA-1, MD5. La valeur par default est SHA-256. |
Renvoie
pyspark.sql.Column: Nouvelle colonne qui contient les octets HMAC bruts.
Exemples
Exemple 1 : compute le code HMAC avec l’algorithme SHA-256 par 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|
+----------------------------------------------------------------+
Exemple 2 : compute le HMAC avec un algorithme explicite
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|
+----------------------------------------+