Générateur de hash : MD5, SHA-1, SHA-256, SHA-512 et HMAC
Calculez dans le navigateur les hash MD5, SHA-1, SHA-256, SHA-384 et SHA-512 ou les HMAC d’un texte ou d’un fichier, et comparez-les à une somme de contrôle.
Le texte est haché exactement tel qu’il est saisi, espaces et sauts de ligne compris. Les sauts de ligne de cette zone sont hachés en LF.
Déposez un fichier ici ou choisissez-en un
Aucun fichier sélectionné.
Ce fichier dépasse 500 Mo. Le fichier entier est chargé en mémoire : le navigateur peut manquer de mémoire ou ralentir.
Résultats
Saisissez du texte ou choisissez un fichier pour afficher ses hash.
Les valeurs hexadécimales sont comparées sans tenir compte des majuscules et minuscules ; les valeurs Base64 doivent correspondre exactement.
Remarques
- MD5 et SHA-1 font l’objet d’attaques par collision connues et ne doivent pas être utilisés à des fins de sécurité. Réservez-les à des vérifications sans enjeu de sécurité, par exemple comparer un téléchargement à une somme de contrôle publiée.
- Un hash n’est pas un chiffrement. Cet outil ne peut pas retrouver le texte ou le fichier d’origine à partir d’un hash.
- N’utilisez pas de simples hash pour stocker des mots de passe. Utilisez un algorithme dédié au hachage de mots de passe, comme Argon2, scrypt ou bcrypt.
- Les hash sont calculés à partir des octets : le même texte avec d’autres fins de ligne (CRLF ou LF), un autre encodage de caractères ou des espaces en plus donne un hash différent.
- Le HMAC combine un hash et une clé secrète. Le HMAC-MD5 n’est pas proposé ici.
- Les textes et fichiers sont traités dans votre navigateur et ne sont pas envoyés à LeedyBox. Les très gros fichiers peuvent être lents à traiter, car le fichier entier est lu en mémoire.
Mode d'emploi
- Sous « Entrée », choisissez « Texte » pour hacher un texte saisi ou collé, ou « Fichier » pour hacher un fichier de votre appareil.
- Pour un fichier, choisissez-le ou déposez-le dans la zone, puis cliquez sur « Calculer les hash ». Si vous modifiez ensuite le « Mode HMAC » ou la clé, cliquez de nouveau sur le bouton.
- Choisissez un « Format de sortie » : hexadécimal en minuscules, hexadécimal en majuscules ou Base64. Changer de format ne modifie que l’écriture des mêmes résultats ; rien n’est recalculé.
- Pour calculer des HMAC au lieu de simples hash, cochez « Mode HMAC » et saisissez la clé secrète dans le champ qui apparaît. Le HMAC-MD5 n’est pas proposé : la ligne MD5 affiche donc « Non disponible pour le HMAC ».
- Pour vérifier un téléchargement, collez la valeur publiée dans « Somme de contrôle attendue (facultatif) ». Elle est comparée à tous les résultats calculés, et la ligne correspondante est marquée « Identique ».
Questions fréquentes
Pourquoi mon hash diffère-t-il de celui de sha256sum ou d’un autre outil ?
La zone de texte hache exactement les caractères saisis ; la moindre différence change donc le résultat. Une cause fréquente est un saut de ligne final : echo hello | sha256sum hache « hello » suivi d’un saut de ligne, ce qui donne un SHA-256 différent de « hello » seul, alors que printf hello | sha256sum n’en ajoute pas. Des caractères identiques à l’écran peuvent aussi être codés différemment, par exemple é sous forme d’un seul point de code ou de e suivi d’un accent combinant. Pour hacher les octets exacts d’un fichier, utilisez « Fichier » plutôt que de coller son contenu, car la zone de texte encode le texte en UTF-8 et hache les sauts de ligne sous forme de LF.
La somme de contrôle publiée est correcte : pourquoi n’y a-t-il pas de correspondance ?
Collez uniquement la valeur du hash. Les espaces, tabulations et sauts de ligne sont supprimés avant la comparaison : si vous collez une ligne entière d’un fichier de sommes de contrôle, le nom du fichier fait partie de la valeur, et un préfixe comme sha256: empêche aussi la correspondance. Tous les algorithmes calculés sont comparés, vous n’avez donc pas à en choisir un. Si vous n’avez collé que la valeur et qu’elle ne correspond toujours pas, vérifiez que le « Mode HMAC » est désactivé et que la somme de contrôle utilise MD5, SHA-1, SHA-256, SHA-384 ou SHA-512 ; les autres algorithmes, comme SHA-3 ou BLAKE2, ne sont pas calculés ici. Sinon, le fichier diffère très probablement de celui pour lequel la somme a été calculée, par exemple une autre version ou un téléchargement incomplet.
Que signifie un résultat qui commence par e3b0c442 ou d41d8cd9 ?
Ce sont les hash d’une entrée vide (0 octet), écrits en hexadécimal : la valeur SHA-256 commence par e3b0c442 et se termine par b855, et la valeur MD5 est d41d8cd98f00b204e9800998ecf8427e. Avec le « Mode HMAC » désactivé, vous les voyez après avoir vidé la zone de texte ou pour un fichier de 0 octet. Si l’un de vos programmes produit l’une de ces valeurs pour des données qui ne devraient pas être vides, il a très probablement haché une chaîne vide ou un fichier vide.
Puis-je vérifier une signature de webhook ou d’API avec le mode HMAC ?
Souvent, oui, si la signature est un HMAC avec SHA-1, SHA-256, SHA-384 ou SHA-512 ; le HMAC-MD5 n’est pas proposé. Cochez « Mode HMAC », saisissez le secret de signature, utilisez le corps de la requête comme entrée et collez la signature dans « Somme de contrôle attendue (facultatif) » sans préfixe comme sha256= ; les signatures hexadécimales et Base64 sont reconnues. L’entrée doit avoir les mêmes octets que ceux qui ont été signés : un corps JSON reformaté ne correspondra pas, et un corps avec des sauts de ligne CRLF doit être enregistré dans un fichier et haché avec « Fichier ». Beaucoup de services signent plus que le corps, par exemple un horodatage et un séparateur placés devant lui ; consultez la documentation du service pour savoir exactement ce qui est signé.
Ma clé secrète est fournie en hexadécimal ou en Base64. Puis-je l’utiliser ?
Seulement si le service utilise le texte de la clé tel quel. Le champ « Clé secrète (UTF-8) » utilise les octets UTF-8 des caractères saisis et ne décode ni l’hexadécimal ni le Base64 ; si le service décode sa clé avant de signer, le HMAC calculé ici ne correspondra donc pas. Les espaces au début ou à la fin du champ font aussi partie de la clé.
Comment créer un hash Subresource Integrity (SRI) ?
Choisissez « Fichier », sélectionnez le script ou la feuille de style, vérifiez que le « Mode HMAC » est désactivé, cliquez sur « Calculer les hash » et réglez le « Format de sortie » sur « Base64 ». Ajoutez sha384- devant la valeur SHA-384 pour obtenir la valeur de l’attribut integrity ; sha256- et sha512- fonctionnent de la même façon. Le fichier doit être identique octet par octet à celui que le navigateur télécharge, sinon le navigateur refuse de l’utiliser. Un fichier chargé depuis une autre origine nécessite aussi l’attribut crossorigin, et son serveur doit autoriser le CORS.
Quelle est la différence entre la sortie hexadécimale et la sortie Base64 ?
Les deux représentent le même condensé. L’hexadécimal utilise deux caractères par octet, soit 64 caractères pour SHA-256, et c’est le format affiché par des outils comme sha256sum ; le Base64 est plus court, 44 caractères pour SHA-256. La sortie Base64 utilise l’alphabet standard avec + et / et un remplissage =, et non la variante URL-safe avec - et _ ; une valeur dans la variante URL-safe, ou dont le remplissage = a été supprimé, peut donc ne pas correspondre lors de la comparaison.