Hachage/Crypto
HMAC Generator
Calculer le HMAC (Hash-based Message Authentication Code) d'un texte ou d'un fichier avec une clé secrète — avec huit algorithmes à la fois : MD5, SHA-1, SHA-256, SHA-384, SHA-512, SHA3-256, SHA3-512, RIPEMD-160.
HMAC (Hash-based Message Authentication Code) is a hash computed together with a secret key, proving a message hasn't changed and was sent by someone who knows that key. Unlike a plain hash, an HMAC can't be forged without knowing the secret.
How to use it
- Enter text or a file and a secret key — the HMAC is computed instantly with eight algorithms at once (MD5, SHA-1, SHA-2, SHA3, RIPEMD-160).
- Copy the variant you need to verify a signature or compare against an expected value.
- The same input and key always produce the same HMAC — handy for checking against a signature received from another system.
Common uses
- Verifying a webhook signature from a payment service or API (most sign the payload with HMAC-SHA256).
- Generating a request signature for an API that requires HMAC authentication.
- Debugging a mismatched signature — checking the key, input encoding, and algorithm one at a time.
Things to keep in mind
HMAC protects against tampering and confirms the sender's authenticity, but it doesn't encrypt the message itself — the content stays readable.
A mismatched HMAC is most often caused by different data encoding (e.g. JSON field order) or a stray whitespace or line break, not by a bug in the algorithm itself.
Article sur cet outil: HMAC : en quoi un hachage avec clé diffère d'un hachage classique
Questions fréquentes
Quelle est la différence entre HMAC et un hash simple ?
Un hash simple (comme MD5 ou SHA-256 seul) ne nécessite aucune clé et sert uniquement à produire une empreinte des données. HMAC utilise en plus une clé secrète partagée, ce qui permet d'authentifier à la fois l'origine des données et leur intégrité — quelqu'un sans la clé ne peut pas produire un HMAC valide.
Quelle clé utiliser pour générer un HMAC ?
La clé doit être un secret partagé entre l'émetteur et le vérificateur, idéalement aussi longue que la taille de sortie du hash utilisé (par exemple 32 octets pour HMAC-SHA-256). Une clé trop courte ou prévisible affaiblit la sécurité du HMAC.
Le calcul du HMAC se fait-il dans le navigateur ?
Oui, tout est calculé côté client en JavaScript, y compris la clé secrète : rien n'est transmis à un serveur.
Pourquoi ne peut-on pas comparer un HMAC avec un simple opérateur d'égalité ?
Une comparaison de chaînes classique s'arrête à la première différence, et le temps d'exécution révèle à l'attaquant combien des premiers caractères il a devinés correctement (timing attack). Il faut des fonctions de comparaison en temps constant, comme hash_equals en PHP.
Peut-on utiliser la même clé pour plusieurs usages différents ?
Ce n'est pas recommandé. Si la même clé secrète sert à la fois à signer des webhooks et à un autre usage, la compromission d'un système compromet automatiquement l'autre — il vaut mieux générer une clé distincte pour chaque usage.