Toolyard

Qu’est-ce qu’un hash ? MD5, SHA-1 et SHA-256 expliqués

Une empreinte pour les données

Une fonction de hachage prend n’importe quelle entrée (un mot, un document, une vidéo de 4 Go) et en fait une courte chaîne de longueur fixe, le hash, aussi appelé empreinte ou somme de contrôle. La même entrée donne toujours le même hash, et le moindre changement en donne un complètement différent :

EntréeHash SHA-256
hello2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
Hello185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969
hello!ce06092fb948d9ffac7d1a376e404b26b7575bcc11ee05a4615fef4fec3a308b

Une majuscule ou un point d’exclamation change chaque caractère du résultat. Essayez dans le Générateur de hash.

Ce qui fait une bonne fonction de hachage

  • Déterministe : la même entrée donne le même hash sur tous les ordinateurs.
  • À sens unique : on ne peut pas remonter du hash à l’entrée.
  • Résistante aux collisions : il doit être pratiquement impossible de trouver deux entrées différentes avec le même hash.
  • Rapide à calculer pour les sommes de contrôle, ce qui est utile, et c’est aussi la raison pour laquelle les hash rapides ne conviennent pas aux mots de passe (voir plus bas).

Hacher n’est pas chiffrer

Le chiffrement fonctionne dans les deux sens : avec la clé, on récupère l’original. Un hash n’a pas de clé et ne peut pas être inversé. Il montre seulement si quelque chose correspond. Le Base64 est encore autre chose : un simple encodage que tout le monde peut décoder.

Les algorithmes courants

AlgorithmeLongueurStatut
MD5128 bits (32 caractères hex)Cassé depuis 2004 ; seulement pour les corruptions accidentelles
SHA-1160 bits (40 caractères hex)Cassé : la première vraie collision a été publiée en 2017
SHA-256256 bits (64 caractères hex)Sûr ; le choix standard aujourd’hui
SHA-512512 bits (128 caractères hex)Sûr ; souvent plus rapide que SHA-256 sur les ordinateurs 64 bits

Voici le mot hello dans chacun :

  • MD5 : 5d41402abc4b2a76b9719d911017c592
  • SHA-1 : aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
  • SHA-256 : 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

Ce que « cassé » veut dire pour MD5 et SHA-1

Avec MD5 et SHA-1, des chercheurs savent créer volontairement deux fichiers différents avec le même hash. Un attaquant pourrait ainsi remplacer un fichier inoffensif par un fichier malveillant avec la même somme de contrôle, ou falsifier un document signé. Aucun des deux n’est réversible, et une corruption accidentelle change toujours le hash : une somme de contrôle MD5 repère donc encore un téléchargement interrompu. Elle ne peut simplement pas prouver que personne n’a trafiqué le fichier.

SHA-256 et SHA-512 font partie de la famille SHA-2, publiée en 2001, et aucune attaque pratique contre eux n’est connue. SHA-3, normalisé en 2015, est une conception différente, prête en réserve.

Où les hash sont utilisés

  • Vérifier des téléchargements : les développeurs publient le SHA-256 de leurs fichiers ; si le vôtre correspond, le fichier est identique. Voir Vérifier une somme de contrôle.
  • Signatures numériques et certificats HTTPS : le document ou le certificat est haché, et c’est le hash qui est signé.
  • Git : chaque commit et chaque fichier est identifié par son hash. Git utilise depuis longtemps SHA-1 et prend désormais aussi en charge SHA-256.
  • Bitcoin et autres blockchains : les blocs sont chaînés avec SHA-256.
  • Trouver des fichiers en double : deux fichiers qui ont le même SHA-256 sont le même fichier.

Les hash et les mots de passe

Les sites ne devraient jamais stocker votre mot de passe, seulement un hash de celui-ci ; à la connexion, ils hachent ce que vous tapez et comparent. SHA-256 n’est pourtant pas le bon outil pour cela : il est si rapide qu’un attaquant disposant d’une base de données divulguée peut faire des milliards d’essais par seconde. Les mots de passe demandent un hachage lent avec sel, conçu pour cela, comme bcrypt, scrypt ou Argon2. Un sel est une valeur aléatoire ajoutée à chaque mot de passe avant le hachage, pour que deux personnes avec le même mot de passe aient des hash différents.

Essayer

Le Générateur de hash calcule en même temps MD5, SHA-1, SHA-256, SHA-384 et SHA-512 de n’importe quel texte ou fichier, dans votre navigateur, et les compare à une somme de contrôle publiée.

Outils de ce guide

Autres guides

Ouvrir des fichiers HEIC sous WindowsRéduire la taille d’un PDFSupprimer la position de vos photosExtraire le son d’une vidéoCréer un QR code Wi-FiSigner un PDFVérifier la somme de contrôle d’un fichier (SHA-256)PNG, JPG ou WebP : quel format d’image choisir ?Fusionner des fichiers PDFCopier le texte d’une imageConvertir un JPG en PDFConvertir un PDF en JPGDiviser un PDF ou en extraire des pagesFaire pivoter un PDF définitivementAjouter des numéros de page à un PDFAjouter un filigrane à un PDFConvertir un HEIC en JPG sur MacConvertir un WebP en JPGRéduire le poids d’une imageConvertir une vidéo en GIFConvertir un WAV en MP3Créer un mot de passe fortConvertir des Celsius en FahrenheitGo ou Gio : pourquoi votre disque affiche moins d’espaceCalculer des pourcentagesCalculer le nombre de jours entre deux datesQu’est-ce qu’un timestamp Unix ?Comparer deux fichiers texteCompter les mots d’un documentScanner un QR code depuis une capture d’écran ou une imageCompresser une photo à 20 Ko (ou toute autre taille)Supprimer l’arrière-plan d’une photoTester votre microVérifier les pixels morts d’un écranEnregistrer votre écranCréer une sonnerie pour iPhoneCompresser une vidéo pour l’envoyerSupprimer le mot de passe d’un PDFProtéger un PDF par mot de passeRemplir un formulaire PDFConvertir un PDF en WordFlouter un visage sur une photoCalculer son IMCCalculer la mensualité d’un prêt immobilierPlanifier une réunion entre plusieurs fuseaux horairesQu’est-ce qu’une expression cron ?Comment obtenir le complément inverse d’une séquence d’ADNComment traduire l’ADN en protéineComment convertir GenBank en FASTAComment trouver les sites de restriction d’une séquence d’ADNComment aligner deux séquences d’ADN ou de protéineComment concevoir et vérifier des amorces PCRComment calculer une masse molaireComment équilibrer une équation chimiqueComment préparer une solution de molarité donnéeComment calculer une dilution (C1V1 = C2V2)Comment calculer le pHComment calculer la concentration d’ADN à partir de l’A260Comment calculer la quantité d’insert pour une ligationComment convertir des tr/min en g (FCR)Comment compter des cellules avec un hématimètreComment utiliser un échiquier de PunnettComment faire un budget avec la règle 50/30/20Méthode boule de neige ou avalanche pour rembourser ses dettesDe combien ai-je besoin pour prendre ma retraite ?Comment convertir un salaire en taux horaireTaux de marge ou taux de marqueComment calculer la TVA et la taxe sur les ventesComment faire une factureQuel logement puis-je me permettre ?Comment lire le code couleur des résistancesComment choisir la résistance d’une LEDComment calculer la chute de tension dans un câbleQuelle quantité de béton me faut-il ?Quelle quantité de peinture me faut-il ?Comment calculer un sous-réseauLes règles des chiffres significatifs