HMAC Générateur
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
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
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.
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
Comment utiliser
- Sélectionnez l'algorithme : HMAC-SHA256 est le choix par défaut et recommandé pour les APIs modernes
- Saisissez le message : collez le corps brut du message ou le contenu de la requête API
- Saisissez la clé : indiquez le Webhook Secret ou l'API Secret
- Choisissez le format : sélectionnez la sortie adaptée, par exemple Hex pour Stripe ou Base64URL pour JWT
- Vérifiez la signature : passez en mode vérification et collez la signature attendue pour la comparer
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
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é.
- Comparaison sécurisée
- Conversion Binaire
- Chiffre de César
- Code Morse
- Hexadécimal
- Vidéo vers Base64
- Base64 en Vidéo
- Image vers Base64
- Base64 vers image
- Texte vers Base64
- Base64 vers Texte
- Vérificateur de hash de fichier
- Fichier vers Base64
- Base64 vers Fichier
- Audio vers Base64
- Base64 vers Audio
- Chiffrer et déchiffrer AES
- Chiffrement DES
- Encodeur Décodeur Base32
- Encoder et decoder Base58
- Encodage Base64
- Décodage Base64
- Comparaison Base64
- Découpage Base64
- Fusion Base64 multi-lignes
- Formatage Base64
- Validation Base64
- Encodage Base64 par lots
- Décodage Base64 par Lots
- Nettoyage Base64
- Gestion du padding Base64
- Statistiques Base64
- Base64 vers HEX
- Convertisseur Base64 DataURL
- Convertisseur Base64-Hex
- Encodage Base85
- HMAC Générateur
- PBKDF2 Dérivation
- Hash MD5
- Hash SHA-256
- Hachage SHA1
- Hachage SHA512
- Décodeur, Vérificateur et Générateur JWT
- HTML Encode/Decode
- Unicode Escape
- Encodage URL
- Base64 URL-safe
- MIME Base64
- Obfuscation Java
- Obfuscation JavaScript
- Obfuscation PHP
- Obfuscation Python