Calculateur HMAC
Calculez le HMAC-SHA256 ou HMAC-SHA512 d'un message avec une clé secrète, en direct pendant la saisie. Sortie hex, entrée UTF-8, message vide accepté.
Vos saisies et fichiers restent dans le navigateur
Clé et message
Collez le message à signer (par exemple le corps d’un webhook) ou chargez un exemple.
Saisissez une clé secrète : le HMAC est calculé pendant la saisie.
Sur cette page
Le Calculateur HMAC produit un code d'authentification de message à clé (RFC 2104) avec SHA-256 ou SHA-512 pendant la saisie. Il sert à vérifier des signatures de webhooks ou à reproduire la signature de requêtes d'API ; la clé et le message restent dans le navigateur.
Fonctionnalité détaillée
Saisissez une Clé secrète et un Message ; les deux sont pris comme texte UTF-8 tels quels. Le résultat est recalculé à chaque frappe et à chaque changement d'algorithme, et s'affiche en hexadécimal minuscule : 64 caractères pour HMAC-SHA256, 128 pour HMAC-SHA512. Le calcul est fait par un module Rust/WebAssembly dans la page.
Un message vide est une entrée valide : avec la clé key, le HMAC-SHA256 d'un message vide vaut 5d5d139563c95b5967b9bd9a8c9b233a9dedb45072794cd232dc1b74832607d0, comme avec OpenSSL et d'autres bibliothèques. Sans clé, la sortie reste vide. Les clés plus longues que le bloc du hachage (64 octets pour SHA-256, 128 pour SHA-512) sont d'abord hachées, comme l'exige la norme.
Le champ de clé n'accepte que du texte : un secret fourni par un service en hex ou en Base64 doit être saisi sous la forme que ce service utilise réellement comme clé. Les résultats sont vérifiés avec les vecteurs de test de la RFC 4231. Rien n'est enregistré : au rechargement, les champs sont vides.
Exemples pratiques
Vecteur de test classique : clé key, message The quick brown fox jumps over the lazy dog, SHA-256 → f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8.
RFC 4231, cas 2 : clé Jefe, message what do ya want for nothing?, SHA-256 → 5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843.
Message vide : la clé key avec un message vide donne 5d5d139563c95b5967b9bd9a8c9b233a9dedb45072794cd232dc1b74832607d0, comme printf '' | openssl dgst -sha256 -hmac key.
Vérifier un webhook : collez le corps brut de la requête comme message et le secret du webhook comme clé ; si le fournisseur envoie sha256=<hex>, comparez seulement la partie hex au résultat.
Comment utiliser cet outil
Saisir la clé
Tapez ou collez le secret partagé dans Clé secrète.
Saisir le message
Collez dans Message exactement les octets signés, ou laissez-le vide pour calculer le HMAC d'une chaîne vide.
Choisir l'algorithme
Sélectionnez SHA-256 ou SHA-512 dans Algorithme ; le Résultat HMAC se met à jour aussitôt (ou cliquez sur Calculer HMAC).
Copier ou effacer
Copier prend la valeur hex ; Effacer vide les deux champs.
Conseils et bonnes pratiques
- Signez exactement les octets signés par le serveur : un JSON reformaté, un autre ordre des clés ou un saut de ligne final changent le HMAC.
- Dans votre code, comparez les HMAC en temps constant ; la comparaison visuelle ici ne sert qu'au débogage.
- Un secret collé avec une espace ou un saut de ligne final est une autre clé ; vérifiez le champ si les valeurs diffèrent.
- HMAC-SHA512 n'est pas « deux fois plus sûr » en usage courant : prenez l'algorithme attendu par l'autre partie.
- Si la valeur attendue est en Base64, elle encode les mêmes octets que la sortie hex : convertissez l'une en l'autre avant de comparer.