Générer un hash
MD5, SHA-1, SHA-256, SHA-384 et SHA-512, pour un texte ou un fichier de n'importe quelle taille. Pratique pour vérifier qu'un téléchargement correspond à sa somme de contrôle publiée. Rien n'est conservé.
- Jamais conservé
- Pas de file d'attente, pas d'attente
- Sans inscription, sans filigrane
Le texte est haché en UTF-8. Déposez plutôt un fichier pour vérifier un téléchargement.
Comment ça marche
Collez du texte ou déposez un fichier
Le texte est haché en UTF-8. Un fichier est lu et haché ici ; il n'est jamais conservé.
Lisez tous les hashs d'un coup
Les cinq algorithmes sont calculés ensemble : inutile de savoir à l'avance lequel il vous faut.
Comparez avec une valeur attendue
Collez la somme de contrôle qu'on vous a fournie et la comparaison se fait pour vous — c'est en comparant caractère par caractère à l'œil qu'on se trompe.
Ce qu'un hash prouve, et ce qu'il ne prouve pas
Un hash est une empreinte de longueur fixe d'une quantité quelconque de données, et il possède deux propriétés qu'il faut énoncer précisément. Il est à sens unique — aucune opération ne permet de retrouver les données à partir du hash, car la quasi-totalité de l'information a disparu. Et il est sensible : modifiez un seul bit en entrée, et environ la moitié des bits en sortie changent. C'est ce qui le rend utile pour confirmer qu'un fichier a été téléchargé intact, ou que deux fichiers sont identiques sans les comparer octet par octet.
MD5 et SHA-1 sont cassés, et ils sont quand même présents, pour une raison. Tous deux font l'objet d'attaques par collision réalisables — MD5 depuis 2004, SHA-1 démontré avec une vraie paire de PDF en 2017 — ce qui signifie qu'on peut fabriquer deux fichiers différents ayant le même hash. Aucun des deux ne prouve donc quoi que ce soit face à un adversaire. Tous deux restent parfaitement efficaces pour détecter une corruption accidentelle, et beaucoup de logiciels publient encore des sommes MD5 : en vérifier une sur un téléchargement est donc un besoin légitime. Utilisez SHA-256 dès que quelqu'un pourrait chercher à vous tromper.
Ne hachez jamais un mot de passe avec l'un de ces algorithmes. C'est l'information la plus lourde de conséquences de cette page. Les hashs sont conçus pour être rapides, et la rapidité est exactement ce qu'il ne faut pas pour des mots de passe : une carte graphique moderne calcule des milliards de hashs SHA-256 par seconde, si bien qu'une base de mots de passe hachés volée se casse en quelques heures. Le stockage des mots de passe exige une fonction délibérément lente avec un sel propre à chaque utilisateur — argon2, bcrypt ou scrypt — conçues pour coûter volontairement du temps et de la mémoire. Un simple SHA-256 d'un mot de passe est une vulnérabilité, pas une protection, quelle que soit son apparence dans une colonne de base de données.
Comparer un hash que vous avez calculé à celui publié sur la page même d'où vous avez téléchargé le fichier prouve moins qu'il n'y paraît : quiconque pourrait remplacer le fichier pourrait aussi remplacer le nombre à côté. Une somme de contrôle a le plus de valeur quand elle vient d'ailleurs — une version signée, un canal distinct, une valeur que vous avez vous-même notée auparavant.
Si vous cherchez autre chose
En ligne de commande, cela tient en un mot : shasum -a 256 file sous macOS et Linux, certutil -hashfile file SHA256 sous Windows, et md5sum ou sha1sum quand c'est une somme plus ancienne qui est publiée. Ces outils lisent le fichier en flux au lieu de le charger : aucune limite de taille, donc — c'est la vraie différence au-delà de quelques centaines de mégaoctets, où une page qui garde tout le fichier en mémoire échouera tout simplement.
Pour vérifier qu'une version est authentique et pas seulement intacte, un hash seul n'est pas le bon outil. Les signatures GPG — gpg --verify file.sig file — prouvent qui a produit le fichier, ce à quoi une somme de contrôle ne peut pas répondre. La plupart des projets sérieux publient les deux, et c'est la signature qui compte.
Questions fréquentes
Mon fichier est-il conservé quelque part ?
Non. Le fichier est haché avec la même cryptographie intégrée que celle qui gère le HTTPS. Rien n'est conservé : il n'y a donc ni plafond de taille, ni attente liée à la connexion.
Y a-t-il une limite de taille ?
La mémoire disponible, pas un plafond fixe. La cryptographie du navigateur ne sait pas hacher un fichier par morceaux — elle a besoin du fichier entier en mémoire d'un coup — si bien qu'un très gros fichier (une image de DVD, par exemple) peut échouer sur une machine incapable de le contenir. Les fichiers jusqu'à quelques centaines de mégaoctets passent sans problème sur un ordinateur ordinaire. Si un gros fichier échoue, c'est cette limite que vous avez atteinte, et la page vous le dit au lieu de rester bloquée.
Quel hash dois-je utiliser ?
SHA-256 pour tout nouvel usage. C'est la norme actuelle, celle qu'utilisent les sommes de contrôle de logiciels, les empreintes de conteneurs et les blockchains, et on ne lui connaît aucune faiblesse. N'utilisez MD5 ou SHA-1 que lorsque quelque chose d'autre les exige — une ancienne somme publiée, un système hérité, ou Git, qui identifie les objets par SHA-1. Utilisez SHA-512 quand vous voulez précisément une empreinte plus longue ; sur les machines 64 bits, il est souvent plus rapide que SHA-256, pas plus lent.
Puis-je m'en servir pour hacher un mot de passe ?
Vous le pouvez, mais vous ne devez pas stocker le résultat. C'est l'erreur la plus répandue dans ce domaine, alors disons-le franchement : MD5, SHA-1 et SHA-256 sont tous inadaptés aux mots de passe, et la robustesse cryptographique de SHA-256 n'y change rien. Le problème, c'est que ces fonctions sont RAPIDES par conception — une carte graphique moderne calcule des milliards de hashs SHA-256 par seconde, si bien qu'une base volée de mots de passe hachés en SHA-256 se casse à une vitesse phénoménale. Les mots de passe exigent une fonction délibérément lente et salée, conçue pour cet usage : bcrypt, scrypt ou Argon2. Tout framework sérieux en intègre une.
Pourquoi MD5 est-il signalé comme cassé ?
Parce que n'importe qui peut désormais fabriquer deux fichiers différents ayant le même hash MD5, sur du matériel ordinaire, en quelques secondes. C'est vrai depuis 2004, et cela a été démontré avec des conséquences bien réelles — deux PDF présentant des contrats différents, deux exécutables dont l'un est un logiciel malveillant. MD5 ne peut donc pas prouver qu'un fichier est bien celui que vous attendiez ; une falsification délibérée peut correspondre. Il reste tout à fait valable pour détecter une corruption accidentelle, comme un téléchargement défectueux ou une copie tronquée, ce à quoi servent en réalité la plupart des sommes MD5 publiées. Il ne doit jamais être utilisé pour la sécurité.
Pourquoi SHA-1 est-il signalé comme cassé ?
Pour la même raison, plus récemment. En 2017, Google et le CWI ont produit deux PDF différents ayant le même hash SHA-1, et dès 2020 l'attaque était assez bon marché pour falsifier des signatures. Les navigateurs ont cessé d'accepter les certificats SHA-1 il y a des années, et Git est en train de l'abandonner. Si vous choisissez un algorithme aujourd'hui, choisissez SHA-256.
Comment vérifier un téléchargement ?
Déposez le fichier téléchargé, puis collez dans la zone de comparaison la somme de contrôle du site d'où il provient. Si elles correspondent, le fichier est arrivé intact et c'est bien celui qui a été publié. Sinon, supprimez-le et téléchargez-le à nouveau. Deux précautions : récupérez la somme de contrôle à la source officielle plutôt qu'à l'endroit où vous avez obtenu le fichier, et gardez en tête qu'une somme de contrôle prouve seulement que le fichier correspond à ce que cette page a publié — si la page elle-même a été compromise, les deux correspondront.
Les hashs sont-ils calculés correctement ?
SHA-1, SHA-256, SHA-384 et SHA-512 proviennent de l'implémentation Web Crypto du navigateur, le même code que celui qui gère le HTTPS. MD5 ne fait pas partie de Web Crypto — délibérément, puisqu'il est cassé — il est donc implémenté ici directement d'après la RFC 1321 et vérifié avec les vecteurs de test publiés dans ce même document.
Bon à savoir : MD5 et SHA-1 sont présents parce que de vrais fichiers et d'anciens systèmes les utilisent encore, pas parce qu'ils sont sûrs — tous deux sont cassés pour tout usage lié à la sécurité et ne servent plus que de sommes de contrôle. Web Crypto ne propose pas de calcul incrémental : le fichier entier est gardé en mémoire, et les très gros fichiers échoueront au lieu d'être traités en flux.
Intégrez cet outil à votre site
Gratuit pour tout blog, page de cours ou article d'aide. Collez un seul extrait de code et vos visiteurs pourront l'utiliser directement sur votre page.
Voir aussi : Outils développeur
Encoder en Base64
Transformez un texte ou un fichier en Base64
Générateur d'UUID
v4 pour les secrets, v7 pour les clés de base de données
Décodeur JWT
Lisez le contenu d'un jeton, en toute confidentialité
Décoder du Base64
Retrouvez le texte ou le fichier derrière du Base64
Formateur JSON
Rendez lisible un JSON illisible
Validateur JSON
Trouvez l'endroit exact où votre JSON est cassé