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.
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 dogSortie
f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8Comment 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ètre | Valeur | Par défaut | Limite |
|---|---|---|---|
| Algorithme | HMAC-SHA256, HMAC-SHA1 ou HMAC-MD5 | SHA-256 | Étiquette de 256, 160 ou 128 bits |
| Clé | Texte UTF-8 utilisé comme octets bruts | — | Aucun décodage Base64 ou hexadécimal implicite |
| Message | Texte UTF-8 | — | 10 Mo d'octets UTF-8 par exécution |
| Sortie | Hexadécimal en minuscules ou Base64 | Hexadécimal | 64 caractères hexadécimaux ou 44 caractères Base64 pour SHA-256 |
| Valeur attendue | Hexadécimal ou Base64 dans le format choisi | — | Comparaison à temps constant après normalisation |
Erreurs et remèdes
| Symptôme | Cause probable | Que 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
Sélectionnez l'algorithme de hachage
Choisissez SHA-256 (recommandé), SHA-1 ou MD5 selon vos exigences de sécurité.
- 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
Choisissez le format de sortie
Sélectionnez l'encodage hexadécimal ou Base64 pour la signature.
- 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
Vous êtes responsable de la gestion des clés et de la validation des résultats.