Générateur HMAC : SHA-1, SHA-256, SHA-512

Saisissez un message et une clé secrète. Vous obtenez le HMAC du message avec quatre fonctions de hachage, en hexadécimal et en Base64, calculé dans votre navigateur.

Gratuit Fonctionne dans votre navigateur Vérifié le mardi 10 novembre 2026

Les données à authentifier. Un texte est lu en UTF-8 tel que saisi. L'hexadécimal ou le Base64 sont lus comme des octets.

Encodage du message

La manière dont le message est écrit.

La clé secrète. Seule une personne ayant la même clé peut produire le même HMAC : gardez-la donc privée.

Encodage de la clé

La manière dont la clé est écrite. Le Base64 lit aussi l'alphabet compatible avec les URL d'une valeur « k » de JWK.

Résultat

Valeurs HMAC

Cet outil fonctionne dans votre navigateur. Ce que vous saisissez ne nous est pas envoyé.

Mode d'emploi

  1. Saisissez les données dans Message. Pour des données binaires, choisissez Hexadécimal ou Base64 sous Encodage du message.
  2. Saisissez le secret dans Clé et choisissez la manière dont il est écrit sous Encodage de la clé.
  3. Lisez les quatre lignes de Valeurs HMAC. Copiez la valeur dont vous avez besoin, ou comparez-la à celle de votre système.
  4. Si les valeurs diffèrent de celles d'un autre système, vérifiez d'abord les octets : une fin de ligne ou un encodage différent donne un autre HMAC.

Ce qu'est un HMAC

Un HMAC (RFC 2104) est un code d'authentification de message : une courte valeur que seule une personne connaissant la clé secrète peut produire. Il est construit à partir d'une fonction de hachage ordinaire H, appliquée deux fois au message et à la clé ; la même fonction peut donc servir aux quatre lignes du tableau. Comme la clé est nécessaire, un HMAC correspondant montre que le message n'a pas été modifié et qu'il vient de quelqu'un qui détient la clé.

Un HMAC ne cache pas le message. Quiconque possède le message peut le lire ; le HMAC permet seulement de le vérifier.

HMAC(K, m) = H((K XOR opad) || H((K XOR ipad) || m))

ipad = l'octet 0x36 répété B fois
opad = l'octet 0x5C répété B fois
B    = la taille de bloc de H : 64 octets pour SHA-1 et SHA-256, 128 octets pour SHA-384 et SHA-512

Quel hash et quelle clé

HMAC-SHA-256 est le choix habituel, celui de nombreux webhooks et API. HMAC-SHA-512 repose sur la même construction, avec une sortie plus longue. HMAC-SHA-1 subsiste dans d'anciens systèmes, et n'est pas un choix pour les nouvelles conceptions.

La clé doit être aléatoire, et au moins aussi longue que la sortie du hash. Une clé saisie sous forme de mot ou de courte phrase est facile à deviner, et une clé devinée rend le HMAC sans valeur.

Hexadécimal et Base64

Les deux formes montrent les mêmes octets. L'hexadécimal écrit chaque octet en deux chiffres : SHA-256 a donc 64 chiffres. Le Base64 écrit trois octets en quatre caractères : SHA-256 a 44 caractères, dont le dernier est un = de remplissage (RFC 4648).

  • HMAC-SHA-1 : 40 chiffres hexadécimaux, 28 caractères Base64
  • HMAC-SHA-256 : 64 chiffres hexadécimaux, 44 caractères Base64
  • HMAC-SHA-384 : 96 chiffres hexadécimaux, 64 caractères Base64
  • HMAC-SHA-512 : 128 chiffres hexadécimaux, 88 caractères Base64

Exemple détaillé : RFC 4231, cas de test 2

La clé Jefe et le message what do ya want for nothing? sont le deuxième cas de test de la RFC 4231 pour SHA-256, SHA-384 et SHA-512, et de la RFC 2202 pour SHA-1. Le tableau ci-dessous est ce que la page affiche pour eux ; sa valeur HMAC-SHA-256 est celle qu'imprime la RFC : 5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843.

Algorithme Hexadécimal Base64
HMAC-SHA-1 effcdf6ae5eb2fa2d27416d5f184df9c259a7c79 7/zfauXrL6LSdBbV8YTfnCWafHk=
HMAC-SHA-256 5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843 W9zBRr9gdU5qBCQmCJV1x1oAPwidJzmDnexYuWTsOEM=
HMAC-SHA-384 af45d2e376484031617f78d2b58a6b1b9c7ef464f5a01b47e42ec3736322445e8e2240ca5e69e2c78b3239ecfab21649 r0XS43ZIQDFhf3jStYprG5x+9GT1oBtH5C7Dc2MiRF6OIkDKXmnix4syOez6shZJ
HMAC-SHA-512 164b7a7bfcf819e2e395fbe73b56e0a387bd64222e831fd610270cd7ea2505549758bf75c05a994a6d034f65f8f0e6fdcaeab1a34d4a6b4b636e070a38bce737 Fkt6e/z4GeLjlfvnO1bgo4e9ZCIugx/WECcM1+olBVSXWL91wFqZSm0DT2X48Ob9yuqxo01Ka0tjbgcKOLznNw==

Questions fréquentes

Un HMAC est-il la même chose que le chiffrement du message ?

Non. Un HMAC ne cache pas le message : n'importe qui peut le lire. Il montre que le message n'a pas été modifié et que l'expéditeur connaît la clé. Pour le secret, il faut un chiffrement.

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

Un hash ne dépend que du message, donc n'importe qui peut le calculer. Un HMAC demande aussi la clé secrète : seule une personne qui possède la clé peut le produire ou le vérifier. Pour des empreintes simples, utilisez le générateur de hash.

Pourquoi mon HMAC diffère-t-il de celui que donne ma bibliothèque ?

La clé ou les octets du message diffèrent. Une clé saisie en texte correspond à ses octets UTF-8, et les mêmes lettres écrites en hexadécimal sont d'autres octets. Un saut de ligne en fin de message modifie aussi le HMAC.

Quelle longueur de clé utiliser ?

Utilisez une clé aléatoire au moins aussi longue que la sortie du hash : 32 octets pour HMAC-SHA-256. La RFC 2104 déconseille fortement une clé plus courte, et une clé faite de mots ou d'une courte phrase est facile à deviner.

Puis-je vérifier une signature de webhook avec cette page ?

Oui, si vous utilisez exactement les octets qui ont été signés. Les signatures de webhooks sont en général calculées sur le corps brut de la requête : collez donc le corps sans modification, car un JSON reformaté donne un autre HMAC.

Ma clé ou mon message sont-ils envoyés quelque part ?

Non. Le HMAC est calculé dans votre navigateur, avec le SubtleCrypto du navigateur. La clé et le message ne sont ni envoyés ni stockés.

Sources

Chiffres et texte vérifiés pour la dernière fois le mardi 10 novembre 2026.

Nous utilisons des cookies nécessaires au fonctionnement du site. Avec votre accord, Google utilise aussi des cookies publicitaires pour afficher des annonces personnalisées. Si vous les refusez, vous voyez toujours des annonces, mais elles ne sont pas personnalisées.