Qu'est-ce qu'une fonction de hachage ?
Une fonction de hachage transforme n'importe quel contenu — une phrase, un logiciel, une sauvegarde de plusieurs gigaoctets — en une chaîne de longueur fixe appelée empreinte ou digest. Trois propriétés la définissent : la sortie a toujours la même taille quelle que soit l'entrée, le même contenu produit toujours la même empreinte, et remonter de l'empreinte à l'entrée doit être impossible en pratique. C'est ce troisième point qui distingue un hachage cryptographique d'une somme de contrôle comme le CRC32.
Concrètement, deux usages occupent l'essentiel du terrain. Vérifier l'intégrité : l'éditeur publie l'empreinte de son fichier, vous la recalculez, l'égalité prouve que le téléchargement n'a pas été altéré. Comparer des contenus : au lieu de conserver les documents eux-mêmes, on conserve leurs empreintes — identiques, elles signifient des contenus identiques, sans révéler quoi que ce soit sur leur nature.
Quel algorithme choisir aujourd'hui ?
SHA-256 est la réponse par défaut : standardisé par la NSA puis adopté partout, implémenté dans chaque langage, et sans collision connue. SHA-512 convient aux gros volumes quand le processeur est en 64 bits, souvent plus rapide que son cousin sur ce type d'architecture. SHA-384 n'apporte rien de particulier au-delà d'une variante plus longue. Pour de la signature de message avec clé, le HMAC-SHA-256 fait référence : il combine la clé secrète et le hachage, de sorte que seul le détenteur de la clé peut produire la même valeur.
Le MD5 et le SHA-1 restent utiles pour des contrôles non sensibles — un index, un cache, une détection de doublon — où la rapidité compte davantage que la résistance. Le CRC32, lui, n'est pas un hachage cryptographique : il détecte les altérations accidentelles, mais une altération volontaire se fabrique en quelques secondes.
Pourquoi MD5 et SHA-1 sont-ils considérés comme brisés ?
Parce que des chercheurs ont fabriqué, pour chacun d'eux, deux documents différents partageant la même empreinte. Pour le MD5, la démonstration remonte à 2004 ; pour SHA-1, une collision réelle a été produite en 2017 sous le nom de SHAttered. Une collision suffit à casser une signature : si l'attaquant choisit le document et que l'éditeur ne fait que le hacher, il peut fournir un bénédicité qui signe un contenu différent. C'est la raison pour laquelle les certificats TLS, les mises à jour logicielles et les signatures de paquets ont abandonné ces algorithmes.
Ce que le hachage ne fait pas
Hacher n'est pas chiffrer : une empreinte est irréversible par conception, mais elle ne protège pas le contenu en le rendant illisible. Le hachage ne chiffre rien, ne remplace ni TLS ni une clé de chiffrement, et ne protège pas non plus un mot de passe seul — c'est un travail pour bcrypt, scrypt ou Argon2, conçus pour être lents. Enfin, hacher deux fois ne renforce rien : enchaîner des algorithmes ne fait qu'ajouter une couche fragile là où une seule fonction non cassée suffit.
Recommandé pour
Administrateurs systèmes et DSI qui vérifient des sommes de contrôle de distributions, développeurs qui scellent des artefacts ou authentifient des webhooks, auditeurs et conformité qui contrôlent l'intégrité de sauvegardes, journalistes et analystes qui comparent des documents sans les diffuser, étudiants en cryptographie qui manipulent les notions d'empreinte, de collision et de sel — et toute personne qui veut hacher un contenu rapidement et sans trace, avec pour compléments le générateur de mots de passe, l'encodeur décodeur Base64, le décodeur JWT, le testeur de regex et le compteur de caractères.