Calculez des signatures HMAC-SHA-256 et HMAC-SHA-512 avec votre clé secrète — directement dans votre navigateur.
HMAC (Hash-based Message Authentication Code, RFC 2104) combine une clé secrète et un message pour produire une signature que seul un détenteur de la même clé peut reproduire. C'est le mécanisme derrière la plupart des vérifications de webhooks — Stripe, GitHub, Shopify et Slack signent tous leurs payloads de webhook en HMAC-SHA-256 — ainsi que des URL signées, la signature de requêtes d'API et les contrôles d'intégrité de jetons de session. Quand une validation de webhook échoue, calculer à la main la signature attendue avec cet outil est en général le moyen le plus rapide de trouver l'écart.
Le calcul utilise SubtleCrypto, l'API WebCrypto native du navigateur : la clé est importée avec crypto.subtle.importKey et la signature produite avec crypto.subtle.sign, la cryptographie est donc l'implémentation auditée du navigateur lui-même plutôt qu'une réinvention en JavaScript. HMAC n'est pas un simple hash(clé + message) : il hache deux fois, en mélangeant la clé avec deux bourrages différents (voir la formule ci-dessous), ce qui bloque les attaques par extension de longueur qui cassent la construction naïve. La sortie reproduit exactement les vecteurs de test de la RFC 4231.
Votre clé secrète ne quitte jamais le navigateur : cet outil n'effectue aucune requête réseau, n'envoie rien et ne stocke rien — vous pouvez le vérifier dans l'onglet réseau des outils de développement de votre navigateur. Deux notes pratiques pour le code de production : comparez toujours les signatures avec une comparaison en temps constant pour éviter les attaques temporelles, et assurez-vous que les deux côtés signent exactement les mêmes octets — un saut de ligne final invisible ou un corps JSON resérialisé est la cause la plus courante de HMAC discordants.
HMAC(K, m) = H((K xor opad) || H((K xor ipad) || m)), où H est la fonction de hachage et où ipad (octet 0x36) et opad (octet 0x5c) sont répétés jusqu'à la taille de bloc du hash. Le double hachage imbriqué empêche les attaques par extension de longueur qui cassent les constructions naïves hash(clé + message).
Il prouve qu'un message provient d'un détenteur de la clé secrète et n'a pas été altéré en transit. Usages typiques : vérifier des payloads de webhooks (Stripe, GitHub, Shopify), signer des requêtes d'API et protéger des URL ou des cookies contre la falsification.
Non. La clé et le message sont traités à 100 % localement par l'API WebCrypto de votre navigateur — rien n'est transmis, journalisé ni stocké où que ce soit.
Presque toujours une différence d'encodage : un saut de ligne final, un corps JSON resérialisé, UTF-8 contre un autre encodage, ou une sortie hexadécimale comparée à du Base64. Signez exactement les mêmes octets avec la même clé et les signatures correspondront.
Les deux sont considérés comme sûrs. HMAC-SHA-256 est le standard du secteur et le choix de la plupart des fournisseurs de webhooks ; choisissez HMAC-SHA-512 quand le destinataire attend une signature de 128 caractères.
Non. HMAC authentifie un message mais ne le cache pas — n'importe qui peut toujours lire le contenu. Utilisez le chiffrement pour la confidentialité et HMAC (ou les deux, comme dans le chiffrement authentifié) pour l'intégrité et l'authenticité.
Vai.la transforme n'importe quelle URL en lien court avec statistiques de clics, QR Code et votre propre biolink.
Vai.la n'est pas responsable de l'utilisation des outils ni des décisions prises sur la base de leurs résultats.