
Générateur de hash et HMAC : MD5, SHA-256, SHA-512 en ligne
Calculez MD5, SHA ou un HMAC dans le navigateur. Hex, Base64 ou Base64URL — checksum de texte et signature de webhook, 100 % local.
Une empreinte prouve les octets ; HMAC prouve qui les a envoyés
Un hash et un HMAC ne répondent pas à la même question. Le SHA-256 d'une chaîne dit si cette chaîne correspond encore à une empreinte publiée. Le HMAC-SHA-256 de la même chaîne, avec un secret partagé, dit si quelqu'un qui connaît le secret l'a produite. Ni l'un ni l'autre n'est un chiffrement, ni un stockage de mot de passe. FastMinify sépare les deux : le générateur de hash en ligne calcule MD5, SHA-1, SHA-256, SHA-384 et SHA-512 sur du texte UTF-8, et le générateur HMAC signe un message en HMAC-SHA-256, SHA-384 ou SHA-512. Les deux tournent dans l'onglet via Web Crypto (MD5 est une implémentation locale, car Web Crypto ne le propose pas). Rien n'est envoyé. Les deux sont sur le hub des outils d'encodage, à côté de Base64 et des aides JWT — l'encodage épelle des octets, le hash les empreinte.
Quand le navigateur est le bon endroit pour hasher
Une chaîne que vous pouvez coller, un secret que vous acceptez de taper dans votre propre navigateur, une empreinte que vous avez déjà.
Si les octets sont un artefact binaire, ou si le secret ne doit pas apparaître dans un navigateur sur une machine partagée, restez dans le shell ou en CI.
Les erreurs de hash qui ressemblent à une correspondance
Une empreinte simple est rapide, sans sel, et identique pour la même entrée. C'est ce qu'on veut pour un checksum. Ce n'est pas ce qu'on veut pour un mot de passe : un attaquant précalcule l'empreinte, et deux utilisateurs avec le même mot de passe partagent une ligne. Les docs des pages hash et HMAC le disent. Le stockage de mots de passe va sur bcrypt-hash (ou Argon2 sur votre serveur). HMAC n'est pas non plus le bon outil : il authentifie un message avec un secret à conserver, il n'étire pas un mot de passe.
N'importe qui peut recalculer le SHA-256 d'un corps public. L'empreinte prouve que le corps n'a pas changé ; elle ne prouve pas qui l'a produit. Si un webhook, une note de version ou un appel d'API doit être authentique, il faut un secret : HMAC, ou une signature JWT vérifiée avec jwt-verify. La confusion inverse est tout aussi courante après le guide Base64 encoder et décoder : Base64 est un emballage réversible. Le SHA-256 de abc est ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad. On ne revient pas de cet hex vers abc.
Le générateur de hash empreinte du texte UTF-8, pas un fichier brut. L'envoi accepte seulement des extensions texte — txt, md, json, csv, html, xml, yml, yaml — jusqu'au plafond client de 32 Mio, et le fichier est décodé en texte avant le hash. Le SHA-256 fournisseur d'un .tar.gz, d'une image ou d'un PDF ne correspondra pas, et ces types ne sont pas dans le sélecteur. Même un fichier texte peut diverger de sha256sum quand les fins de ligne changent. Le SHA-256 de abc est le vecteur ci-dessus. Le SHA-256 de abc plus un seul LF est edeaaff3f1774ad2888673770c6d64097e391bc362d7d6fb34982ddf0efd18cb. Mêmes lettres, octets différents.
Le X-Hub-Signature-256 de GitHub, c'est sha256= plus le HMAC-SHA-256 du corps brut, secret en UTF-8. Stripe signe timestamp.payload, pas le JSON seul. La page HMAC ne construit pas ces chaînes et ne retire pas un préfixe sha256=. Collez le message exact, les octets exacts de la clé, et seulement l'empreinte. La comparaison ignore la casse hex et les espaces, ainsi que le = final en Base64URL. Elle n'ignore pas un préfixe.
Quel algorithme, quelle écriture, quel outil
Ils produisent tous des chaînes opaques. Ils ne se remplacent pas.
Les octets de l'empreinte ne changent pas. L'écriture, si. L'hex est ce que sha256sum et la plupart des docs webhook affichent. Le Base64 paddé est ce que certaines API renvoient. Le Base64URL sans padding est la forme compacte (pas de +, de /, ni de = final). Les majuscules ne s'appliquent qu'à l'hex.
Une empreinte tronquée est une copie ratée, pas un autre algorithme. Comptez les caractères après avoir retiré les espaces.
Calculer une empreinte, puis signer un message
Ouvrez le générateur de hash. Collez le texte ou envoyez un fichier texte. Choisissez hex, Base64 ou Base64URL. N'activez les majuscules que si l'empreinte de référence est en capitales — cela ne change rien au Base64. Les cinq algorithmes se rafraîchissent ensemble. Collez l'empreinte attendue pour surligner les correspondances. Chargez l'exemple si vous voulez seulement voir le pipeline. Le champ doit contenir du texte non blanc ; un champ vide efface les cartes au lieu d'afficher le SHA-256 bien connu de la chaîne vide.
Étape 1 — Coller les octets exacts comme texte
Mettez-vous d'accord sur les sauts de ligne. Un LF final fait partie de l'entrée. Ne réindentez pas le JSON si l'autre côté a hashé la forme compacte.
Étape 2 — Aligner l'écriture de sortie
Hex pour les checksums et les outils CLI. Base64 paddé quand l'API montre + / et =. Base64URL sans padding quand l'empreinte va dans un jeton ou une URL.
Étape 3 — Coller l'empreinte attendue
La comparaison ignore la casse hex et les espaces, ainsi que le padding Base64URL. Une correspondance surligne l'algorithme. Aucun surlignage : octets différents, écriture différente, ou préfixe encore à retirer.
Ouvrez le générateur HMAC. Pas d'envoi de fichier : collez le message et le secret. Gardez SHA-256 sauf si le fournisseur dit SHA-384 ou SHA-512. Réglez l'encodage de clé sur UTF-8 pour un secret façon passphrase, hex pour une clé hex (préfixe 0x facultatif, longueur paire), ou Base64 si la clé a été stockée ainsi. L'UTF-8 sur un secret hex signe les caractères 0-9a-f, pas les octets de la clé — l'empreinte ne correspond pas et l'erreur n'est pas évidente. L'empreinte attendue suit les mêmes règles que la page hash.
Les mêmes octets dans Node et openssl
createHash et createHmac empreintent la chaîne que vous passez. Ils n'ajoutent pas de saut de ligne. Cela correspond aux outils du navigateur.
Exemple de base
echo ajoute un saut de ligne, donc l'empreinte porte sur d'autres octets. printf non. Pour un fichier sur disque, ne passez -binary que si vous voulez les octets bruts de l'empreinte ; l'hex est la forme texte par défaut.
Exemple de base
Pas d'installation, pas d'envoi vers un serveur, cinq algorithmes de hash ou trois HMAC, hex / Base64 / Base64URL, et un surlignage d'empreinte attendue. Contrepartie : texte et UTF-8 seulement, plafond de 32 Mio pour un fichier texte sur la page hash, pas de checksum binaire, pas de HMAC-MD5, pas d'étirement de mot de passe, pas d'assemblage JWT. Utilisez les pages pour inspecter un extrait ou reproduire une signature de webhook. Gardez openssl sur l'artefact de release et bcrypt sur le mot de passe.
Conclusion
Hashez le texte quand vous devez savoir qu'il n'a pas changé. Passez-le en HMAC quand un secret partagé doit prouver qui l'a produit. FastMinify fait les deux dans le navigateur : MD5 jusqu'à SHA-512 pour du texte UTF-8 (et des fichiers texte jusqu'à 32 Mio), HMAC-SHA-256/384/512 avec une clé UTF-8, hex ou Base64, écrite en hex, Base64 ou Base64URL sans padding. L'outil ne checksumera pas une archive, ne stockera pas un mot de passe et ne vérifiera pas un JWT. Ces tâches restent sur openssl, bcrypt et jwt-verify. Partez du hub des outils d'encodage tant que la chaîne n'est encore que du texte.
Articles connexes

Évitez SSH et nginx pour un side project Next.js. Comparez Railway, Render, Vercel et un VPS, puis déployez depuis Git après avoir minifié les assets dans le navigateur.

Convertir du texte, un fichier ou une image en Base64 (et inversement) sans backend — data URI CSS, pièce jointe email, payload JWT. 100 % local.

Compilez un extrait SCSS ou LESS (variables, mixins) en CSS dans le navigateur, sans npm run build — pour une revue, un snippet ou une machine sans Node.