Toolonit
  1. Accueil
  2. Chiffrement
  3. HMAC

Générateur et vérificateur HMAC

Créez et vérifiez des signatures HMAC-SHA256 et autres HMAC avec une clé secrète.

0 octets
La clé est en
Algorithme
Sortie
HMAC-SHA-256Saisissez la clé secrète pour voir le HMAC.

Facultatif. La valeur d’un en-tête GitHub X-Hub-Signature-256 (sha256=…) peut être collée telle quelle.

Un HMAC est une signature calculée à partir d’un message et d’une clé secrète partagée : quiconque possède la clé peut la recalculer, et la moindre modification du message ou de la clé donne une autre valeur. Les webhooks (GitHub, Stripe, Slack), les requêtes d’API signées et les jetons JWT HS256 l’utilisent tous. Le HMAC se met à jour au fil de la frappe, et vous pouvez coller une signature pour la vérifier. Il est calculé par Web Crypto, intégré à votre navigateur : le message et la clé ne quittent jamais votre appareil. C’est gratuit et sans inscription.

Comment générer et vérifier un HMAC

  1. Collez le message exactement tel qu’il a été signé ; pour un webhook, le corps brut de la requête.
  2. Saisissez la clé secrète, ou cliquez sur « Générer » pour en obtenir une aléatoire ; choisissez « Hex » si la clé vous a été fournie en octets hexadécimaux.
  3. Choisissez l’algorithme (SHA-256 sauf indication contraire) et copiez le résultat en hexadécimal ou en Base64.
  4. Pour vérifier une signature, collez-la sous « Vérifier une signature » : la valeur d’un en-tête GitHub sha256=… fonctionne telle quelle.

Fonctionnalités

  • HMAC-SHA1, HMAC-SHA256, HMAC-SHA384 et HMAC-SHA512
  • Clé secrète en texte (UTF-8) ou en hexadécimal, ou clé aléatoire de 32 octets via « Générer »
  • Résultat en hexadécimal ou en Base64, mis à jour au fil de la frappe
  • Vérifie une signature reçue en hexadécimal ou en Base64 (y compris URL-safe), avec ou sans le préfixe sha256= de GitHub ou v0= de Slack
  • Signale quand une signature a la longueur d’un autre algorithme, avec un bouton pour en changer
  • Calculé avec Web Crypto, intégré à votre navigateur

Est-ce confidentiel ?

Oui. Le HMAC est calculé par Web Crypto, intégré à votre navigateur ; le message et la clé secrète restent sur cette page et ne sont jamais envoyés ni enregistrés.

Questions fréquentes

Comment vérifier la signature d’un webhook GitHub ?

Collez le corps brut de la requête comme message, le secret de votre webhook comme clé texte, et la valeur de l’en-tête X-Hub-Signature-256 sous « Vérifier une signature ». GitHub envoie sha256= suivi du HMAC-SHA256 hexadécimal du corps, et le préfixe est lu tel quel.

Comment vérifier la signature d’un JWT HS256 ?

Collez l’en-tête et la charge utile du jeton – tout ce qui précède le deuxième point – comme message, le secret comme clé, choisissez SHA-256, et collez la troisième partie du jeton sous « Vérifier une signature ». Son Base64 URL-safe est lu tel quel.

Pourquoi ma signature ne correspond-elle pas ?

Le message doit être, octet pour octet, celui qui a été signé : un JSON reformaté, un saut de ligne manquant ou en trop à la fin, ou des fins de ligne Windows (CRLF) modifient tous le HMAC. Le texte saisi ici utilise des sauts de ligne LF. Vérifiez aussi l’algorithme, et si la clé est en texte ou en hexadécimal.

Donne-t-il le même résultat qu’OpenSSL ?

Oui. printf '%s' 'message' | openssl dgst -sha256 -hmac 'key' affiche la même valeur hexadécimale, et une clé hexadécimale correspond à -mac HMAC -macopt hexkey:…. Utilisez printf ou echo -n : un simple echo ajoute un saut de ligne, qui est signé lui aussi.

HMAC-SHA1 est-il encore sûr ?

Pour un HMAC, oui en pratique : les collisions SHA-1 connues ne cassent pas HMAC-SHA1, c’est pourquoi d’anciens webhooks l’utilisent encore. Pour tout nouveau projet, choisissez HMAC-SHA256.

Outils associés