tigtools

Générateur HMAC

Calculez un code d’authentification de message avec clé (HMAC) à partir d’un message et d’une clé secrète, ou vérifiez une signature reçue. La clé et le message restent dans votre navigateur.

Fonctionne dans votre navigateur Sans inscription

La clé et le message sont traités uniquement dans cet onglet du navigateur et ne sont jamais envoyés ailleurs. Évitez toutefois de coller des secrets de production actifs sur un ordinateur partagé ou non sécurisé.
Format de la clé

Signé en UTF-8, exactement comme saisi. Une espace ou un saut de ligne à la fin modifie le résultat.

Sortie

Collez une signature au format hexadécimal (majuscules ou minuscules) ou Base64 pour la comparer au résultat ci-dessus.

Mode d’emploi

  1. Saisissez la clé secrète et indiquez s’il s’agit de texte brut ou d’octets hexadécimaux.
  2. Collez le message, par exemple le contenu d’un webhook exactement tel que vous l’avez reçu.
  3. Choisissez l’algorithme et l’encodage de sortie utilisés par votre service ; le HMAC est mis à jour au fur et à mesure de la saisie.
  4. Pour vérifier une signature, collez-la dans le champ de vérification et recherchez « Correspondance ».

Fonctionnement

HMAC (RFC 2104) combine une clé secrète et une fonction de hachage pour produire une signature que seule une personne possédant la clé peut créer. Les services, comme les webhooks et les requêtes API signées, envoient un HMAC avec chaque message afin que le destinataire puisse vérifier son authenticité et s’assurer qu’il n’a pas été modifié.

Cet outil utilise l’API Web Crypto de votre navigateur (crypto.subtle.importKey et sign) et ses résultats sont vérifiés à l’aide des vecteurs de test RFC 4231 et RFC 2202. Une clé textuelle et le message sont encodés en UTF-8. Une clé hexadécimale est décodée en octets bruts ; les espaces, les deux-points et le préfixe 0x initial sont ignorés. HMAC-SHA-256 est le choix le plus courant ; HMAC-SHA-1 est toujours considéré comme sûr pour un MAC, mais il est surtout utilisé par les anciennes API.

Si votre signature ne correspond pas, vérifiez les différences les plus fréquentes : les octets exacts du message (de nombreux fournisseurs de webhooks signent le corps brut, et non un JSON reformaté), l’horodatage ou le préfixe ajouté par le fournisseur à la chaîne signée, l’utilisation de la clé comme texte ou son décodage préalable depuis l’hexadécimal ou Base64, et le format de la signature attendue (hexadécimal ou Base64). Si elle comporte un préfixe tel que « sha256= », supprimez-le avant la comparaison.

Exemples

Cas de test RFC 4231

La clé « Jefe » (texte), le message « what do ya want for nothing? » et HMAC-SHA-256 donnent 5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843. Choisissez « Essayer un exemple » pour le charger.

Vérifier une signature de webhook

Un fournisseur envoie l’en-tête X-Signature: sha256=… avec chaque requête. Collez le corps brut de la requête comme message et le secret de votre webhook comme clé, choisissez HMAC-SHA-256 et Hex, puis collez la valeur après « sha256= » dans le champ de vérification.

Clé encodée en hexadécimal

Certains systèmes fournissent des clés sous forme de chaînes hexadécimales, comme 0b0b0b…. Choisissez Hex comme format de clé pour que l’outil signe avec les octets décodés ; utiliser cette même chaîne comme texte donne un résultat complètement différent.

Foire aux questions

Quelle est la différence entre un HMAC et une empreinte simple ?

Tout le monde peut calculer l’empreinte simple d’un message, comme SHA-256. Un HMAC dépend aussi d’une clé secrète : seule une personne possédant la clé peut donc le produire ou le vérifier. Cela prouve que le message provient d’une personne possédant la clé et qu’il n’a pas été modifié.

Pourquoi mon HMAC ne correspond-il pas à celui de mon serveur ?

Les octets en entrée diffèrent presque toujours : fins de ligne, espaces, ordre des clés JSON, encodage des caractères ou clé à décoder depuis l’hexadécimal ou Base64. Vérifiez également que vous comparez le même format (hexadécimal ou Base64) et supprimez les préfixes comme « sha256= ».

Ma clé secrète est-elle envoyée quelque part ?

Non. La clé et le message sont utilisés uniquement par l’API Web Crypto dans cet onglet du navigateur. Ils ne sont ni envoyés, ni stockés, ni inclus dans les données d’analyse.

HMAC-SHA-1 est-il toujours sécurisé ?

Les collisions SHA-1 ne compromettent pas directement HMAC-SHA-1, qui reste accepté pour des raisons de compatibilité. Pour les nouveaux systèmes, utilisez HMAC-SHA-256 ou une version plus robuste.

Confidentialité

La clé, le message et le résultat restent dans cet onglet du navigateur. Rien n’est téléversé, stocké ni envoyé aux outils d’analyse ; seul un événement anonyme indiquant que l’outil a été utilisé est enregistré.