Aller au contenu principal

Calculatrice HMAC

Calculez des signatures HMAC avec SHA-256, SHA-1 ou MD5 dans votre navigateur. La clé ne quitte jamais l'onglet.

Un HMAC est calculé ici sur les octets exacts fournis, avec SHA-256, SHA-1 ou MD5. La vérification ne réussit que si les deux côtés ont construit la même chaîne : la canonicalisation compte plus que le choix d'algorithme.

Espace de travail

Algorithme de hachage

Taille du message : 0.00 MB sur 10 MB — les messages plus volumineux sont refusés avant la signature.

Clé traitée uniquement dans votre navigateur.

Format de sortie

Authentification API

Utilisez HMAC-SHA256 pour la signature des requêtes API. Incluez un horodatage pour empêcher les attaques par rejeu.

Exemple de signature de webhook

Vérifiez le corps brut de la requête exactement tel qu'il a été reçu — une nouvelle sérialisation du JSON modifie les octets et invalide la signature.

// Node.js — verify a webhook signature
import { createHmac, timingSafeEqual } from 'node:crypto';

export function verifyWebhook(rawBody, signature) {
  const expected = createHmac('sha256', process.env.WEBHOOK_SECRET)
    .update(rawBody)          // raw bytes, not JSON.stringify(req.body)
    .digest('hex');

  const a = Buffer.from(expected, 'hex');
  const b = Buffer.from(signature, 'hex');
  return a.length === b.length && timingSafeEqual(a, b);
}

Utilisez une comparaison en temps constant et rejetez les horodatages obsolètes pour éviter les attaques par rejeu.

Pas encore de résultat

Saisissez votre entrée ci-dessus, le résultat s'affichera ici.

Comment ça marche
Référence : un essai réel, les paramètres et les erreurs

Exemple déroulé

HMAC-SHA256 d'un corps de webhook avec la clé key

Entrée

key: key
message: The quick brown fox jumps over the lazy dog

Sortie

f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8

Comment vérifier: OpenSSL affiche le même hexadécimal : `printf %s 'The quick brown fox jumps over the lazy dog' | openssl dgst -sha256 -hmac 'key'`. Le commutateur Base64 montre les mêmes 32 octets, pas une seconde signature.

Paramètres

Paramètres
ParamètreValeurPar défautLimite
AlgorithmeHMAC-SHA256, HMAC-SHA1 ou HMAC-MD5SHA-256Étiquette de 256, 160 ou 128 bits
CléTexte UTF-8 utilisé comme octets bruts—Aucun décodage Base64 ou hexadécimal implicite
MessageTexte UTF-8—10 Mo d'octets UTF-8 par exécution
SortieHexadécimal en minuscules ou Base64Hexadécimal64 caractères hexadécimaux ou 44 caractères Base64 pour SHA-256
Valeur attendueHexadécimal ou Base64 dans le format choisi—Comparaison à temps constant après normalisation

Erreurs et remèdes

Erreurs et remèdes
SymptômeCause probableQue faire
Une signature de webhook ne correspond pas.La signature a été calculée sur un JSON re-sérialisé au lieu des octets bruts.Utilisez les octets exacts du corps ; ne re-parsez pas et ne re-sérialisez pas le JSON.
La même clé donne une autre valeur ailleurs.L'autre outil décode la clé en Base64 ou en hexadécimal.Cette page traite la clé comme du texte UTF-8 ; transmettez les mêmes octets.
Hexadécimal et Base64 se contredisent.Ce sont deux encodages de la même étiquette.Décodez les deux en octets avant de comparer ; ne comparez pas les chaînes.
Le message est refusé comme trop grand.Le budget de 10 Mo d'octets UTF-8 est dépassé.Signez une empreinte du corps ou découpez la charge utile.
Une valeur HMAC-MD5 est refusée par le serveur.MD5 est hérité et n'est pas fourni par Web Crypto ; la page utilise une implémentation locale.Préférez SHA-256, sauf si le pair exige MD5.
Comment calculer des signatures HMAC

Apprenez à calculer des signatures HMAC pour l'authentification API et la vérification d'intégrité avec un outil côté client côté client.

  1. 1

    Sélectionnez l'algorithme de hachage

    Choisissez SHA-256 (recommandé), SHA-1 ou MD5 selon vos exigences de sécurité.

  2. 2

    Saisissez le message et la clé

    Entrez le message/données à signer et votre clé secrète. La clé ne quitte jamais votre navigateur.

  3. 3

    Choisissez le format de sortie

    Sélectionnez l'encodage hexadécimal ou Base64 pour la signature.

  4. 4

    Calculez et copiez

    Cliquez sur calculer pour générer la signature HMAC, puis copiez-la pour l'utiliser dans votre application.

Cas d'usage courants
  • 1Signer des charges utiles de webhooks pour que les destinataires puissent vérifier l'expéditeur
  • 2Authentifier des requêtes API entre services sans échanger de mots de passe
  • 3Vérifier qu'un message n'a pas été altéré pendant le transport
  • 4Créer des corps de requête signés pour des appels idempotents protégés contre le rejeu

Questions fréquentes

À quoi sert HMAC ?

HMAC vérifie l'authenticité et l'intégrité d'un message à l'aide d'un secret partagé. Il est courant pour la signature de requêtes API et la validation de charges utiles de webhooks.

Quels algorithmes sont disponibles ?

SHA-256 (recommandé), SHA-1 et MD5.

Ma clé secrète est-elle envoyée quelque part ?

Non. La clé et le message sont traités localement dans votre navigateur et ne quittent jamais votre appareil.

Comment vérifier une signature de webhook ?

Calculez le HMAC sur le corps brut exact de la requête avec le secret partagé, puis comparez le résultat hexadécimal ou base64 à l'en-tête de signature. Le champ de valeur attendue compare les deux en temps constant : une différence est signalée sans révéler l'endroit où elle se situe.

L'encodage de l'entrée change-t-il le HMAC ?

Oui. Le HMAC opère sur des octets : le même texte en UTF-8, hexadécimal ou base64 produit des entrées différentes. Utilisez l'encodage de l'émetteur et hachez le corps brut plutôt qu'un objet JSON re-sérialisé.

Guides associés

Outils connexes

Contexte sur le chiffrement sur zeyrovault.com

Vos données restent sur votre appareil.

Vous êtes responsable de la gestion des clés et de la validation des résultats.