HMAC Generator
Understand HMAC Generator
Calcule un code d'authentification HMAC-SHA256, HMAC-SHA384 ou HMAC-SHA512 sur un message à l'aide d'une clé secrète partagée.
How it works
HMAC exécute la fonction de hachage deux fois, en mêlant la clé à chaque passe, si bien que produire un code valide exige de détenir la clé. C'est là toute la différence avec un simple hachage : n'importe qui peut recalculer une empreinte SHA-256 sur des données modifiées, ce qui rend une empreinte nue inutile face à une altération délibérée, tandis qu'un HMAC lie l'intégrité à la possession du secret. La sortie a la largeur de la fonction de hachage sous-jacente — 32 octets pour SHA-256, affichés ici sur 64 caractères hexadécimaux. Cet outil traite la clé comme du texte UTF-8 et signe avec WebCrypto.
When to use it
- Vérifier un webhook GitHub ou Stripe en recalculant la signature sur le corps brut de la requête.
- Déboguer AWS Signature V4 ou un schéma de signature de requête similaire quand le serveur refuse votre signature.
- Confirmer qu'une implémentation de signature écrite dans un autre langage produit une sortie identique octet pour octet.
- Construire à la main le segment de signature d'un JWT HS256 pour voir comment les pièces s'emboîtent.
- Dériver un jeton déterministe et infalsifiable à partir d'un identifiant d'enregistrement et d'un secret côté serveur.
Watch out for
- Dans du vrai code, comparez les codes en temps constant. Utiliser === ou une comparaison de chaînes ordinaire s'arrête au premier octet différent, ce qui fuite le préfixe correct au fil des tentatives ; utilisez crypto.timingSafeEqual, hmac.compare_digest ou l'équivalent dans votre langage.
- Signez exactement les octets bruts. Analyser du JSON puis le resérialiser change les espaces et l'ordre des clés, et le HMAC ne correspondra plus. Capturez le corps de la requête avant qu'un intergiciel d'analyse de corps n'y touche.
- Les encodages doivent concorder. Cet outil prend une clé textuelle en UTF-8 et renvoie de l'hexadécimal. Un fournisseur qui publie un secret en base64, ou qui attend une signature en base64, exige une conversion explicite — un encodage discordant est la cause la plus fréquente d'une signature qui « devrait » correspondre.
- Un HMAC prouve l'origine et l'intégrité, pas la fraîcheur. À moins qu'un horodatage ou un nonce ne figure dans les données signées et ne soit vérifié, une requête capturée peut être rejouée telle quelle et sera validée.
Not the right tool for: Des signatures que des tiers doivent pouvoir vérifier sans pouvoir les produire. HMAC est symétrique — la clé de vérification est la clé de signature — utilisez donc un algorithme asymétrique tel que RS256 ou Ed25519 quand le vérificateur ne doit pas pouvoir forger.
Frequently Asked Questions
Qu'est-ce qu'un code d'authentification de message ?
Un code d'authentification de message (MAC) est une courte valeur ajoutée à un message pour vérifier à la fois son intégrité (il n'a pas été modifié) et son authenticité (il vient bien de l'expéditeur attendu, celui qui détient la clé secrète). HMAC est la construction de MAC la plus répandue — elle combine une fonction de hachage et une clé secrète.
Qu'est-ce que l'authentification d'API ?
L'authentification d'API prouve l'identité d'un client au serveur avant de lui accorder l'accès. HMAC est utilisé dans les schémas de signature d'API : le client calcule un HMAC sur la requête (méthode + chemin + corps + horodatage) avec une clé secrète partagée et envoie le résultat dans un en-tête. Le serveur recalcule et compare.
Qu'est-ce que HMAC-SHA256 ?
HMAC-SHA256 applique SHA-256 comme fonction de hachage à l'intérieur de la construction HMAC. Il produit un code d'authentification de 256 bits (32 octets). C'est le choix le plus courant pour les signatures de webhooks (GitHub, Stripe) et pour AWS Signature V4. HMAC-SHA512 produit un code de 512 bits, pour une sécurité supérieure.
How to Use HMAC Generator
- Paste or type your input in the input area above.
- The tool processes your input automatically or click Run.
- Copy or download the result using the action buttons.
- Use Ctrl+Enter to run quickly from the keyboard.