Générateur HMAC
Générez une signature HMAC à partir d'un message et d'une clé secrète.
Comment utiliser Générateur HMAC
- Collez le message que vous voulez signer.
- Saisissez la clé secrète partagée par les deux parties.
- Choisissez un algorithme — HMAC-SHA-256 en cas de doute — et copiez le résultat.
À propos de Générateur HMAC
HMAC signifie Hash-based Message Authentication Code, défini dans la RFC 2104. Il mêle une clé secrète au processus de hachage, et cet ajout change ce que la sortie prouve. Un simple hachage prouve seulement que certaines données ont produit un certain condensé — si un attaquant peut modifier le message, il lui suffit de recalculer le hachage pour qu'il corresponde, et rien ne paraît anormal. Avec HMAC, il ne peut pas produire un code valide sans la clé, si bien que le destinataire obtient à la fois l'intégrité (le message n'a pas été altéré) et l'authenticité (il provient bien de quelqu'un possédant la clé).
HMAC n'est pas simplement « hacher la clé et le message ensemble » — il utilise une construction imbriquée, hachant deux fois avec deux valeurs de clé dérivées. C'est cette structure qui rend HMAC immunisé contre l'attaque par extension de longueur qui touche SHA-256 et SHA-512 bruts, où un attaquant qui connaît un condensé peut ajouter des données et calculer un nouveau condensé valide sans connaître l'entrée d'origine. C'est une raison réelle pour laquelle les schémas naïfs hash(secret + message) échouent alors que HMAC réussit.
Vous avez presque certainement déjà utilisé HMAC sans vous en rendre compte. Les signatures de webhooks de Stripe et GitHub sont des HMAC — l'en-tête que vous comparez est calculé à partir du corps brut de la requête et de votre clé secrète de signature. La signature des requêtes AWS l'utilise également. Tout comme les JWT signés avec HS256, que vous pouvez décortiquer avec notre décodeur JWT. HMAC-SHA-256 est le choix par défaut habituel et le bon choix pour un nouveau projet. HMAC-MD5 est un cas intéressant : il est toujours considéré comme acceptable en tant que MAC malgré la faiblesse de MD5 face aux collisions, car la sécurité de HMAC ne repose pas sur la résistance aux collisions — mais il n'y a aucune bonne raison de le choisir pour une nouvelle conception.
Questions fréquentes
Quelle est la différence entre HMAC et un simple hachage ?
Un simple hachage ne prouve rien si un attaquant peut modifier le message, car il peut aussi recalculer le hachage. HMAC intègre une clé secrète, de sorte que seule une personne possédant la clé peut produire un code valide — cela vous apporte l'authenticité en plus de l'intégrité.
Quel algorithme devrais-je choisir ?
HMAC-SHA-256, sauf indication contraire spécifique — c'est le choix par défaut courant pour les webhooks, la signature d'API et les JWT HS256.
HMAC-MD5 est-il sûr ?
Il est encore considéré comme acceptable en tant que MAC, même si MD5 lui-même est cassé au niveau des collisions, car HMAC ne repose pas sur la résistance aux collisions. Cela dit, ne le choisissez pas pour une nouvelle conception — utilisez HMAC-SHA-256.
Pourquoi la signature de mon webhook ne correspond-elle pas ?
Presque toujours parce que les octets du message diffèrent. Signez le corps brut exact de la requête — pas une version re-sérialisée — et vérifiez l'absence d'un saut de ligne final ou d'un encodage de clé différent.
Mon message et ma clé sont-ils stockés ?
Non. Les deux sont envoyés à notre serveur car les navigateurs ne peuvent pas calculer la plupart de ces algorithmes, puis utilisés pour le calcul et immédiatement supprimés — jamais journalisés, jamais stockés. Pour une clé de signature de production réelle, effectuer cette opération sur votre propre machine reste la pratique la plus sûre.

