Hash & Crypto Helpers

Générateur HMACVérifier les octets du message et de la clé

Choisissez les encodages séparément, puis générez une signature ou vérifiez une empreinte attendue.

Générateur HMAC

Message

Empreinte HMAC

Message et clé restent en mémoire dans cette page, sans envoi ni enregistrement dans le stockage du navigateur.

Options

Aucune suppression d’espaces ni normalisation. Clés multilignes en Hex/Base64 ; empreinte complète sans préfixe d’en-tête.

Message : 1 000 000 unités UTF-16 et octets. Clé : 4 096 unités UTF-16, non vide.

Saisissez une clé, puis générez ou vérifiez. Le message peut être vide.

Le Générateur HMAC aide à comprendre pourquoi une signature HMAC diffère entre deux serveurs. Avant de changer de code, comparez le message brut et la représentation de la clé secrète.

HMAC-SHA256 est sélectionné au départ. SHA-512 et SHA-1 sont aussi disponibles pour les protocoles qui les imposent. La vérification de signature porte sur les octets fournis, sans reconstruire une requête HTTP.

Pourquoi ce Générateur HMAC ?

Une clé texte peut cacher une confusion

Le Générateur HMAC sépare l’encodage de la clé de celui du message. Le texte 6162 représente quatre octets ; en Hex, il en représente deux. Ce choix peut expliquer un résultat différent avec un secret visuellement identique.

Deux représentations de clé produisent des suites d’octets de longueurs différentes avant de signer le même message.

Vérifier directement une référence

Aucune génération préalable n’est nécessaire. La vérification utilise le message, la clé et l’algorithme actuels. Elle distingue une référence mal formée d’une empreinte complète qui ne correspond pas.

Deux empreintes identiques portent une coche ; changer un octet du message produit une empreinte différente et une croix.

Préparer les octets à signer

01

Conserver le corps de la requête

Ne reformatez pas le JSON et ne supprimez pas les espaces. Le saut de ligne final, le BOM ou une autre représentation Unicode peuvent modifier les octets signés.

  • Utilisez Hex ou Base64 si un champ texte ne peut pas conserver les octets originaux.
02

Choisir le format de la clé

UTF-8 traite les caractères littéraux, Hex décode des paires hexadécimales et Base64 décode une représentation standard. Le champ de clé est masqué par défaut.

  • Le champ refuse les sauts de ligne collés ou déposés et conserve la clé actuelle. Encodez d’abord les clés multilignes en Hex ou Base64.
03

Aligner le format de référence

La sortie et l’empreinte attendue ont des encodages indépendants. Les calculs sont manuels ; toute modification rend l’ancien résultat impropre à la copie.

  • Ctrl/Cmd + Entrée vérifie dans le champ de référence et génère ailleurs. Le raccourci ne relance pas un calcul déjà en cours.

Contrôler chaque représentation

Trois tailles complètes

SHA-256 produit 32 octets, SHA-512 en produit 64 et SHA-1 en produit 20. Suivez l’algorithme prévu par le protocole. SHA-1 est conservé pour la compatibilité avec des systèmes existants.

Des représentations indépendantes

Message et clé acceptent UTF-8, Hex et Base64 standard. La sortie et la référence acceptent Hex ou Base64. La casse ne change pas les octets en Hex ; elle compte en Base64.

Vérification par Web Crypto

L’API native du navigateur calcule et vérifie le HMAC. Une correspondance concerne le message et la clé fournis. Elle ne contrôle ni l’horodatage, ni l’expiration, ni la réutilisation d’une requête interceptée.

Règles de saisie et périmètre

Aucune correction implicite
Pas de suppression d’espaces, de normalisation Unicode ou de nouvelle sérialisation JSON. Hex refuse préfixes, séparateurs, espaces et longueurs impaires. Base64 refuse alphabet URL, espaces, remplissage incorrect et bits résiduels non canoniques ; un remplissage correctement omis est accepté.
Message vide accepté
La clé décodée doit contenir au moins un octet. Le message est limité à 1 000 000 unités UTF-16 et 1 000 000 octets décodés ; la clé à 4 096 unités UTF-16. Les substituts Unicode isolés sont refusés.
Empreintes complètes seulement
La référence doit représenter 20, 32 ou 64 octets selon l’algorithme. Retirez vous-même les préfixes comme sha256=. Pas de signature tronquée, de détection d’algorithme, de fichier, de chargement d’URL ou de modèle de webhook spécifique.
Remplacement réversible
Exemple et Effacer affichent les quantités remplacées avant application. Une annulation restaure entrées, paramètres et résultat. Cette copie contient l’ancienne clé en mémoire jusqu’à la prochaine modification. L’outil ne gère pas de clés et ne stocke pas de mots de passe.

Questions sur le Générateur HMAC

Quel algorithme choisir ?

Choisissez celui de votre protocole. SHA-256 est proposé initialement ; SHA-512 et SHA-1 servent aux intégrations qui les demandent. Une autre fonction de hachage ne peut pas remplacer l’algorithme attendu.

Ma clé est-elle stockée ?

Le Générateur HMAC ne transmet pas la clé et ne l’enregistre pas dans le stockage du navigateur. Effacer conserve néanmoins une copie pour annuler, jusqu’à une nouvelle modification ou au départ de la page. JavaScript ne garantit pas un effacement physique de la mémoire.

Base64 ou Hex ?

Ce sont deux représentations des mêmes octets. Pour SHA-256, la sortie complète contient 64 caractères Hex ou 44 caractères Base64 avec remplissage. Choisissez le format réel de la référence, indépendamment du format de sortie.

Quel encodage de caractères est utilisé ?

Le mode texte utilise UTF-8 sans normalisation Unicode. Les modes Hex et Base64 décodent les octets avant le calcul. Le navigateur peut modifier les fins de ligne au collage ; un encodage de bytes permet de fournir les données exactes.

Pourquoi mon résultat HMAC diffère-t-il de celui d’autres plateformes ?

Comparez le corps brut, les sauts de ligne, la clé et son encodage, puis l’algorithme. Certains protocoles ajoutent un horodatage ou un chemin au message signé. Préparez cette chaîne vous-même, sans supposer que le JSON affiché correspond aux octets transmis.

Une autre question ?

Commencer avec une référence

Utilisez le Générateur HMAC avec l’exemple RFC, vérifiez la référence, puis modifiez un caractère pour observer la différence.

Choisissez les encodages séparément, puis générez une signature ou vérifiez une empreinte attendue.