Exemple prérempli : cas de test 2 de la RFC 4231. N'utilisez pas de clé de production dans une page web.
🌐 Web et technique
Générez un code d'authentification HMAC à partir d'un message et d'une clé secrète, dans votre navigateur.
Exemple prérempli : cas de test 2 de la RFC 4231. N'utilisez pas de clé de production dans une page web.
HMAC (Hash-based Message Authentication Code, RFC 2104) associe une fonction de hachage et une clé secrète pour produire un code qui prouve à la fois l'intégrité d'un message et l'identité de son émetteur. Seuls ceux qui connaissent la clé peuvent calculer ou vérifier le code. Il est employé pour signer les webhooks, authentifier les appels d'API, protéger les cookies de session ou construire les jetons JWT en HS256.
Le calcul combine la clé, remplie ou raccourcie à la taille de bloc de la fonction de hachage, avec deux constantes de remplissage, puis effectue deux hachages imbriqués. L'outil s'appuie sur l'API Web Crypto et propose SHA-1, SHA-256, SHA-384 et SHA-512. La clé peut être saisie en texte UTF-8, en hexadécimal ou en Base64, et le résultat s'affiche dans les trois représentations les plus courantes.
Pour vérifier un webhook, calculez le HMAC du corps brut de la requête avec le secret partagé et comparez-le à la signature reçue. En production, cette comparaison doit se faire en temps constant côté serveur.
Un hash seul peut être recalculé par n'importe qui. Un HMAC dépend d'une clé secrète : sans elle, il est impossible de produire une signature valide ou de falsifier le message sans être détecté.
Les collisions de SHA-1 n'affaiblissent pas gravement HMAC, qui reste utilisé par des protocoles existants. Pour un nouveau système, préférez néanmoins HMAC-SHA256 ou supérieur.
Vérifiez que le message est identique octet pour octet, avec les mêmes retours à la ligne, et que la clé est interprétée dans le même format (texte, hexadécimal ou Base64).