Outil en ligne de calcul HMAC
Informations sur le calcul
Génération et vérification HMAC avec 8 algorithmes de hash, clés et messages dans trois encodages, comparaison en temps constant
Outil en ligne de calcul HMAC
HMAC est un code d authentification de message basé sur un hash et protégé par une clé : un même message produit des résultats complètement différents avec des clés différentes. Il permet ainsi de vérifier si les données ont été modifiées et de confirmer que le message provient bien d une partie possédant la clé. Les signatures API, la vérification des callbacks Webhook et la protection des URL de téléchargement contre les modifications utilisent HMAC.
Fonctions principales
- Générer un HMAC : saisir le message et la clé, choisir l algorithme de hash et obtenir le code d authentification.
- Vérifier un HMAC : coller la valeur attendue fournie par l autre partie et la comparer au résultat local, avec indication directe de concordance ou de différence.
- Clé aléatoire : utiliser le générateur aléatoire sécurisé du navigateur pour créer une clé de 16, 32 ou 64 octets, avec possibilité d afficher ou masquer la clé.
- Exemples courants : deux exemples de signature API et de vérification Webhook sont intégrés pour comprendre rapidement la construction des paramètres.
Algorithmes et encodages pris en charge
Les algorithmes pris en charge sont HMAC-SHA1, HMAC-SHA256, HMAC-SHA384, HMAC-SHA512 ainsi que HMAC-SHA3-224, SHA3-256, SHA3-384 et SHA3-512, soit 8 algorithmes. SHA1 est signalé comme déconseillé et SHA256 est utilisé par défaut. La clé et le message peuvent chacun être interprétés en UTF-8, Hex ou Base64, tandis que la sortie peut être en Hex ou Base64, afin de s adapter directement aux exigences d encodage des différentes documentations d API.
Vérification et informations sur le résultat
Le mode de vérification utilise une comparaison en temps constant afin d éviter les fuites d informations liées aux différences de durée de comparaison. La zone de résultat affiche la longueur du condensé, du message et de la clé, ce qui aide à vérifier si la clé a été tronquée ou contient des espaces supplémentaires. La page précise également que les signatures JWT utilisent Base64URL, qui diffère du Base64 standard au niveau du remplissage et de deux caractères.
Gestion des erreurs
Lors de l interprétation de la clé ou du message en Hex, les caractères invalides ou une longueur impaire sont signalés directement. Les échecs d analyse Base64 sont également indiqués clairement au lieu de produire une signature erronée. Un message ou une clé vide, ou l absence du HMAC attendu lors de la vérification, déclenche une demande de compléter les données.
Cas d utilisation
- Déboguer les signatures d API de plateformes ouvertes et vérifier que l implémentation locale correspond aux exemples de la documentation.
- Vérifier la signature présente dans les en-têtes des requêtes Webhook afin de confirmer que la requête n a pas été falsifiée.
- Comparer les résultats HMAC des implémentations PHP, Java, Go, Node et autres langages.
- Générer rapidement des clés aléatoires pour les environnements de test.
Confidentialité et sécurité des données
Tout le calcul HMAC est effectué localement dans le navigateur. Il n existe aucune API de calcul côté serveur et les clés et messages ne sont ni envoyés au serveur ni enregistrés. Il reste recommandé d utiliser des clés de test plutôt que de véritables clés de production.
Générer et vérifier en ligne des codes d authentification HMAC
- Prend en charge 8 algorithmes : HMAC-SHA1, SHA256, SHA384, SHA512 et SHA3-224/256/384/512
- Les clés et messages peuvent être interprétés séparément en UTF-8, Hex ou Base64 pour s adapter aux différentes documentations d API
- La sortie prend en charge Hex et Base64 et affiche la longueur du condensé, du message et de la clé
- Le navigateur peut générer des clés aléatoires de 16, 32 ou 64 octets, avec affichage ou masquage de la clé
- En mode vérification, coller le HMAC attendu pour le comparer avec une comparaison en temps constant
- Exemples intégrés de signature API et de vérification Webhook, avec rappel de la différence d encodage Base64URL de JWT