logo
GeekFormat

HMAC Générateur

Algorithme Hashi

La longueur de la clé recommandée correspond à la longueur de la sortie Hash: SHA-1=20 octets, SHA-256=32 octets, SHA-384=48 octets, SHA-512=64 octets

Contenu du message0 caractères
Signature HMAC (Hex)
En attente d'entrée…

Notes

  • HMAC génère des signatures basées sur des algorithmes clés et Hashi pour l'authentification de la source et de l'intégrité
  • Soutien SHA-1 / SHA-256 / SHA-384 / SHA-512
  • Générer et valider les deux localement dans les navigateurs, sans télécharger de données
  • Validation utilise la longueur fixe par octets pour réduire les différences de séries chronologiques

Générateur et vérificateur gratuit de signatures HMAC en ligne, compatible avec HMAC-SHA256/384/512/SHA1/MD5. Idéal pour vérifier les webhooks Stripe, GitHub et Shopify avec une sortie Hex, Base64 ou Base64URL.

Recommandations connexes

Cas d'utilisation

  • Développement de webhooks Stripe : déboguer les callbacks de paiement et vérifier la validité de l'en-tête `Stripe-Signature`
  • Intégration de webhooks GitHub : vérifier la signature `X-Hub-Signature-256` des événements Push et Pull Request
  • Synchronisation de commandes Shopify : valider la signature `X-Shopify-Hmac-Sha256` des webhooks de mise à jour de commande
  • Signatures de bots Slack : vérifier `X-Slack-Signature` pour les callbacks d'événements Slack
  • Débogage JWT : signer des JWT avec HS256 et vérifier la validité du token
  • Signature de requêtes API : implémenter AWS Signature V4 ou des schémas de signature personnalisés

Fonctionnalités

  • Prise en charge de plusieurs algorithmes : HMAC-SHA256/384/512, SHA1 et MD5, pour les APIs modernes comme pour les systèmes hérités
  • Vérification des signatures de webhooks : prise en charge intégrée des formats Stripe, GitHub, Shopify et Slack avec analyse automatique
  • Trois formats de sortie : Hex, Base64 et Base64URL, pour répondre aux exigences de différentes APIs et plateformes
  • Génération en temps réel : recalcul automatique 300 ms après chaque modification, sans bouton à cliquer
  • Mode de vérification de signature : collez la signature attendue et voyez immédiatement si elle correspond
  • Détection de la longueur de clé : suivi en temps réel de la robustesse de la clé avec avertissement si elle est trop courte
  • Traitement dans le navigateur : calcul local via la Web Crypto API, sans jamais téléverser les clés vers le serveur
  • Prise en charge de JWT : la sortie HMAC-SHA256 peut être utilisée directement pour une signature HS256

Comment utiliser

  1. Sélectionnez l'algorithme : HMAC-SHA256 est le choix par défaut et recommandé pour les APIs modernes
  2. Saisissez le message : collez le corps brut du message ou le contenu de la requête API
  3. Saisissez la clé : indiquez le Webhook Secret ou l'API Secret
  4. Choisissez le format : sélectionnez la sortie adaptée, par exemple Hex pour Stripe ou Base64URL pour JWT
  5. Vérifiez la signature : passez en mode vérification et collez la signature attendue pour la comparer

FAQ

Quelle est la différence entre HMAC et un hash classique ?

Les fonctions de hash classiques, comme SHA256, calculent seulement une empreinte du message lui-même ; n'importe qui peut la produire. HMAC ajoute une clé secrète au calcul, de sorte que seules les personnes qui possèdent cette clé peuvent générer ou vérifier une signature valide. HMAC garantit donc à la fois l'intégrité et l'authenticité du message, tandis qu'un hash simple ne vérifie que l'intégrité.

Comment vérifier les signatures de webhooks Stripe, GitHub ou Shopify ?

Chaque plateforme présente ses signatures différemment : Stripe utilise l'en-tête `Stripe-Signature` au format `t=timestamp,v1=hex_signature` et signe la chaîne `timestamp.payload` ; GitHub utilise `X-Hub-Signature-256` au format `sha256=hex_signature` ; Shopify envoie `X-Shopify-Hmac-Sha256` sous forme de valeur encodée en Base64. Cet outil permet de vérifier directement ces formats courants.

Quelle est la différence entre les sorties Hex, Base64 et Base64URL ?

Hex est le format hexadécimal (0-9, A-F) : il reste lisible et très pratique pour le débogage. Base64 est un encodage à 64 caractères, plus compact et idéal pour intégrer une valeur dans du JSON. Base64URL est la variante compatible avec les URL (elle remplace +/ par -_) et s'utilise notamment dans les en-têtes JWT et les paramètres d'URL.

Quel algorithme HMAC faut-il utiliser ?

**HMAC-SHA256 est le choix recommandé** : c'est le standard actuel pour les APIs et les webhooks (utilisé par Stripe, GitHub, Shopify et Slack), avec une sortie de 32 octets et une compatibilité quasi universelle. SHA-512 offre une marge de sécurité plus élevée, mais produit une sortie plus longue (64 octets). SHA1 ne convient plus qu'aux systèmes hérités. MD5 est obsolète et ne devrait servir que pour de très anciennes APIs qui l'exigent encore.

Quelles sont les exigences concernant la longueur de la clé ?

Plus une clé est longue, plus elle est sûre. Un minimum de 16 caractères (128 bits) est recommandé, et 32 caractères ou plus sont préférables en production. L'outil surveille la longueur de la clé en temps réel et signale les clés trop courtes. Générez vos clés avec un générateur aléatoire cryptographiquement sûr, pas avec des mots de passe simples ni des chaînes prévisibles.

Pourquoi la vérification indique-t-elle que la signature ne correspond pas ?

Les causes les plus fréquentes sont : 1) le message contient des espaces ou des retours à la ligne en trop ; 2) la plateforme signe une chaîne composée, par exemple Stripe signe `timestamp.payload` ; 3) la signature contient un préfixe à retirer, comme `sha256=` chez GitHub ; 4) l'algorithme utilisé n'est pas le même. Vérifiez que les deux côtés utilisent exactement les mêmes paramètres.

Peut-on utiliser HMAC pour signer un JWT ?

Oui. L'algorithme HS256 de JWT correspond à HMAC-SHA256, et HS512 à HMAC-SHA512. La sortie HMAC-SHA256 de cet outil peut être utilisée directement comme contenu de signature pour HS256. Dans un JWT, l'en-tête et le payload sont encodés en Base64URL, puis signés avec HS256.

Cet outil HMAC en ligne est-il sûr ?

Cet outil utilise la Web Crypto API pour effectuer tous les calculs localement dans votre navigateur. Les clés et les messages ne sont jamais envoyés à un serveur. Vous pouvez le vérifier dans le panneau Network des DevTools du navigateur : aucune requête externe n'est effectuée. C'est adapté aux tests et au développement ; pour des clés de production très sensibles, privilégiez des outils locaux hors ligne.

Peut-on falsifier des signatures HMAC ?

Non, tant que la clé reste secrète et que l'algorithme de hash résiste correctement aux collisions. Avec des clés suffisamment longues et aléatoires, aucune attaque connue ne permet de forger des signatures HMAC valides. La rotation régulière des clés reste également une bonne pratique de sécurité.

Qu’est-ce que HMAC Générateur ?

HMAC (Hash-based Message Authentication Code) est une technologie d'authentification de messages très répandue, définie par la RFC 2104. HMAC traite une clé et un message dans une fonction de hash afin de produire une signature de longueur fixe. Contrairement à un hash classique, HMAC exige de connaître la clé pour générer ou vérifier la signature, ce qui permet de garantir à la fois l'intégrité et l'authenticité du message.

**HMAC est l'un des fondements de la sécurité moderne des APIs**. Stripe, GitHub, Shopify, Slack et Twilio utilisent HMAC-SHA256 pour signer les événements de webhook et confirmer que les requêtes proviennent bien de la plateforme. AWS utilise aussi HMAC-SHA256 pour la signature de requêtes Signature V4. L'algorithme HS256 de JWT est, dans son principe, HMAC-SHA256. Comprendre HMAC est donc une étape essentielle pour maîtriser la sécurité des APIs.

**Chaque plateforme a son propre format de signature** : Stripe utilise `t=timestamp,v1=hex_signature` et signe `timestamp.payload` ; GitHub utilise `X-Hub-Signature-256` au format `sha256=hex_signature` ; Shopify envoie `X-Shopify-Hmac-Sha256` sous forme de valeur encodée en Base64. Cet outil peut analyser et vérifier automatiquement ces formats courants.

**Pourquoi une vérification de signature peut-elle échouer ?** Le plus souvent, le format du message ne correspond pas : la plateforme peut signer `timestamp.payload` au lieu du corps brut du message, le contenu peut contenir des retours à la ligne en trop, ou la signature peut inclure un préfixe (comme `sha256=`) à supprimer. Consultez attentivement la documentation de la plateforme et comparez avec la valeur hexadécimale brute.

Cet outil utilise la **Web Crypto API** native du navigateur (SubtleCrypto) pour les calculs HMAC, la même base cryptographique que celle utilisée par HTTPS et TLS. Tous les calculs se font localement ; les clés et les messages ne sont jamais envoyés à un serveur. Vous pouvez ouvrir le panneau Network des DevTools du navigateur pour vérifier qu'aucune requête externe n'est effectuée.