Comment utiliser : Générateur HMAC
- Collez le message exactement tel qu’il est signé : pour les webhooks, le corps brut de la requête.
- Saisissez la clé secrète et choisissez son encodage.
- Sélectionnez l’algorithme de hachage ; le HMAC se met à jour immédiatement.
- Collez une signature reçue dans Signature attendue pour la vérifier.
Qu’est-ce que HMAC ?
HMAC (Hash-based Message Authentication Code, RFC 2104) combine une clé secrète et une fonction de hachage pour produire une signature. Toute personne possédant la clé peut calculer la même valeur ; une personne qui ne la possède pas ne peut pas en forger une. Les API utilisent HMAC pour signer les requêtes (AWS Signature v4, de nombreuses passerelles de paiement), et les webhooks l’emploient pour vous permettre de vérifier qu’un appel provient bien de l’émetteur.
Vérifier les webhooks
| Service | En-tête | Algorithme / encodage |
|---|---|---|
| GitHub | X-Hub-Signature-256 | HMAC-SHA256, hexadécimal, préfixé par sha256= |
| Stripe | Stripe-Signature | HMAC-SHA256 en hexadécimal de timestamp.body |
| Shopify | X-Shopify-Hmac-Sha256 | HMAC-SHA256, Base64 |
| Slack | X-Slack-Signature | HMAC-SHA256 en hexadécimal de v0:timestamp:body |
La raison la plus courante d’une signature qui ne correspond pas est que le corps a été modifié avant la signature : JSON analysé puis resérialisé, espaces ou fins de ligne différents. Signez toujours les octets bruts reçus. Le vérificateur ci-dessus accepte l’hexadécimal (avec ou sans sha256=), le Base64 et le Base64url.
HMAC ou simples empreintes
Un simple hachage SHA-256 garantit l’intégrité, mais pas l’authenticité : n’importe qui peut le recalculer après avoir modifié le message. HMAC intègre le secret, si bien que seuls les détenteurs de la clé peuvent produire une valeur valide. Utilisez une clé d’au moins autant d’octets aléatoires que la taille de sortie du hachage (32 pour SHA-256). Dans votre code serveur, comparez les signatures avec une fonction à temps constant, comme crypto.timingSafeEqual.
Pour les hachages sans clé, utilisez le générateur de hash ; pour les jetons signés, l’encodeur JWT.
Aussi recherché comme : hmac en ligne, hmac sha256 en ligne, signature webhook, vérifier hmac, hmac sha512, calculer hmac, hmac sha256.
Outils complémentaires : Générateur HMAC
- Décodeur JWT — Collez un JSON Web Token pour examiner son en-tête et sa charge utile, vérifier sa date d'expiration et valider sa signature.
- Encodage / Décodage Base64 — Convertissez du texte au format Base64 et inversement, avec une prise en charge complète de l'UTF-8 (accents, emojis) ; passez au format Base64 compatible URL, ou glissez-déposez un fichier pour obtenir sa chaîne Base64 ou son URI de données.
- Chiffrement AES — Protégez une note, un secret ou une valeur de configuration par mot de passe avec AES-256, ou déchiffrez un texte produit par openssl enc.
- Validateur IBAN — Vérifiez qu’un IBAN est valide avant d’envoyer de l’argent ou de l’enregistrer : le pays, la longueur propre à ce pays, le format du compte et la somme de contrôle mod-97.
Questions fréquentes
Pourquoi mon HMAC ne correspond-il pas à la signature du webhook ?
sha256=.