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

Common uses

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.

Articles : Hachage/Crypto

Hash Generator : en quoi MD5, SHA-1 et SHA-256 diffèrent

Pourquoi MD5 sert encore à vérifier l'intégrité de fichiers, mais pas pour les mots de passe.

Checksum Verifier : comment vérifier qu'un fichier n'est pas corrompu

Pourquoi une somme de contrôle correspondante confirme l'intégrité d'un fichier, mais pas qui l'a créé.

Bcrypt : pourquoi les mots de passe sont hachés lentement, pas rapidement

Pourquoi un SHA-256 rapide est un mauvais choix pour les mots de passe, et un bcrypt lent le bon choix.

UUID : comment générer des identifiants qui ne se répètent presque jamais

Pourquoi un UUID v4 peut être généré indépendamment sur des millions de machines sans risque de collision.

Générateur de mots de passe : ce qui rend vraiment un mot de passe solide

Pourquoi un long mot de passe fait de mots du dictionnaire est plus solide qu'un court avec symboles et chiffres.

AES : comment fonctionne le chiffrement symétrique

Pourquoi la même clé chiffre et déchiffre les données en AES, et en quoi cela diffère du chiffrement asymétrique.

Argon2 : pourquoi cet algorithme a remporté le concours de hachage de mots de passe

Comment Argon2 se défend mieux contre les attaques par GPU que les algorithmes de hachage de mots de passe plus anciens.

Scrypt : pourquoi l'algorithme a besoin d'autant de mémoire

Pourquoi scrypt exige volontairement beaucoup de mémoire pour compliquer le cassage sur des dispositifs ASIC.

TOTP : comment fonctionnent les codes à usage unique des applications d'authentification

Pourquoi le code de Google Authenticator fonctionne sans internet et se synchronise avec le serveur uniquement via l'heure.

PBKDF2 : le plus ancien standard d'étirement de clé

Pourquoi le nombre d'itérations recommandé pour PBKDF2 augmente chaque année.

X.509 : ce qu'il y a à l'intérieur d'un certificat SSL

Ce que le navigateur vérifie exactement dans le certificat d'un site avant d'afficher le cadenas vert.

PGP : comment fonctionne le chiffrement à clé publique et privée

Pourquoi on peut partager librement une clé publique PGP, mais jamais la clé privée.