Générateur HMAC

Générez un HMAC (code d’authentification de message basé sur une fonction de hachage) à partir d’un texte et d’une clé secrète. Ce calculateur en ligne prend en charge HMAC-SHA-1, HMAC-SHA-256, HMAC-SHA-384 et HMAC-SHA-512, accepte les clés texte, hexadécimales ou Base64 et renvoie une balise hexadécimale en minuscules. Le calcul s’effectue localement dans le navigateur.

Clé secrète
Entrée
0 caract. · 0 octets
Essayer :
Empreinte
✓ Traitement local dans le navigateur ✓ La saisie n’est pas envoyée au serveur
Exemples
Message vide
Clé: secret Algorithme: hmac-sha-256 Format de clé: text
Entrée (vide)
Sortie f9e66e179b6747ae54108f82f8ade8b3c25d76fd30afde6c395822c530196169

Un message vide est valide. HMAC-SHA256 produit tout de même une balise hexadécimale de 64 caractères avec la clé « secret ».

Clé texte
Clé: secret Algorithme: hmac-sha-256 Format de clé: text
Entrée Bonjour le monde !
Sortie a3409d8e7eda10d18799d451516621b3def7c0f676278ead5f6078c23acf4a16

HMAC-SHA256 de « Bonjour le monde ! » avec la clé texte UTF-8 « secret ».

Autre message et autre clé
Clé: cle-secrete Algorithme: hmac-sha-256 Format de clé: text
Entrée vérification
Sortie d5802892a8cd0e1983372643b48ea14cf3c758bb6f6302e5dd0ac549d8be0fbb

Modifier le message ou la clé produit une balise HMAC-SHA256 totalement différente.

Vecteur de test HMAC-SHA256 de la RFC 4231
Clé: 0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b Algorithme: hmac-sha-256 Format de clé: hex
Entrée Hi There
Sortie b0344c61d8db38535ca8afceaf0bf12b881dc200c9833da726e9376c2e32cff7

Le cas de test 1 de la RFC 4231 utilise une clé de 20 octets en hex et permet de contrôler une implémentation HMAC-SHA256.

Qu’est-ce que HMAC ?

HMAC (Hash-based Message Authentication Code) associe une fonction de hachage cryptographique à une clé secrète. Défini par la RFC 2104, il transforme un message de longueur quelconque en une balise d’authentification de longueur fixe. HMAC-SHA256 est la variante moderne la plus courante ; HMAC-SHA384 et HMAC-SHA512 produisent des balises plus longues, tandis que HMAC-SHA1 subsiste dans des protocoles anciens.

Le destinataire qui possède la même clé recalcule le HMAC et compare les balises. Une correspondance montre que le message n’a pas changé et provient d’une partie connaissant le secret partagé. HMAC est un code d’authentification symétrique, pas un chiffrement ni une signature numérique à clé publique.

Fonctionnement de HMAC

De manière simplifiée, HMAC calcule H((K′ ⊕ opad) || H((K′ ⊕ ipad) || message)). La clé est adaptée à la taille de bloc du hachage puis combinée à deux constantes pour les opérations interne et externe. Cette construction évite le problème d’extension de longueur des schémas naïfs comme hash(clé || message).

HMAC-SHA1 produit 20 octets (40 caractères hex), HMAC-SHA256 32 octets (64), HMAC-SHA384 48 octets (96) et HMAC-SHA512 64 octets (128). Le générateur affiche la balise complète en hexadécimal minuscule, sans troncature.

Utiliser le générateur HMAC
  1. Saisissez le message exact.
  2. Choisissez HMAC-SHA256, HMAC-SHA1, HMAC-SHA384 ou HMAC-SHA512.
  3. Sélectionnez le format de clé : texte, hex ou Base64.
  4. Saisissez la clé secrète puis copiez le résultat hexadécimal.

Le message est toujours encodé en UTF-8. En mode texte, la clé l’est aussi ; les valeurs hex et Base64 sont d’abord décodées en octets. Espaces, sauts de ligne, casse, Unicode, algorithme et format de clé modifient le résultat.

HMAC pour les API, webhooks et JWT

HMAC authentifie souvent les requêtes API, charges utiles de webhooks, données de session et messages de protocoles. La vérification recalcule la balise sur exactement les mêmes octets avec le secret partagé, puis effectue une comparaison en temps constant. Un horodatage ou nonce peut empêcher les attaques par rejeu.

Respectez toujours la spécification : une API peut exiger une requête canonique, un webhook signer le corps HTTP brut et JWT HS256 utiliser Base64URL plutôt que hex. Cet outil calcule le HMAC du texte saisi, mais ne construit pas de chaîne propre à un fournisseur, ne convertit pas en Base64URL et ne vérifie pas automatiquement une balise existante.

FAQ

Utilisez HMAC lorsque deux parties partagent un secret et doivent détecter une modification volontaire ou authentifier celui qui connaît ce secret. Après avoir modifié un message, n’importe qui peut recalculer un simple SHA-256. Pour une vérification publique sans secret partagé, utilisez une signature numérique.

Pour HMAC-SHA256, une clé aléatoire de 32 octets est un bon choix. Générez-la avec un système cryptographiquement sûr et protégez-la dans un gestionnaire de secrets. Évitez mots de passe, phrases prévisibles, secrets réutilisés et clés dans le code client.

Une clé HMAC est une suite d’octets, souvent stockée sous forme de texte hex ou Base64. Le mode texte encode en UTF-8 ; hex et Base64 restituent les octets d’origine. « 616263 », « YWJj » et « abc » ne sont équivalents qu’avec leurs formats respectifs.

Le calcul s’exécute localement via Web Crypto API ; message et clé ne sont pas envoyés au serveur pour le calcul. Si le stockage des préférences est autorisé, le champ de clé peut rester dans le stockage local. Effacez-le avec les données du site sur un appareil partagé.

Utilisez celui imposé par le protocole. HMAC-SHA256 convient généralement aux nouvelles intégrations ; SHA384 et SHA512 sont adaptés si la spécification les exige. Conservez SHA1 uniquement pour la compatibilité.

Non. HMAC est une fonction à sens unique. Sa vérification nécessite le message original et la même clé : recalculez la balise et comparez-la à la valeur attendue.

Choisissez le même algorithme et format de clé, saisissez exactement le message et la clé, puis comparez les balises. Dans une application, utilisez une comparaison d’octets en temps constant. Ce calculateur n’a pas de champ de vérification automatique.

Vérifiez l’algorithme, le format et les octets de la clé, l’encodage, la casse, les espaces, les sauts de ligne, la sérialisation JSON et la normalisation Unicode. Pour une API ou un webhook, vérifiez aussi le corps ou la chaîne canonique exacts et le format hex, Base64 ou Base64URL.

HS256 utilise HMAC-SHA256, mais signe l’en-tête et la charge utile encodés en Base64URL puis encode la signature en Base64URL sans remplissage. Cet outil renvoie de l’hexadécimal et ne crée donc pas un JWT complet.
Outils associés