À quoi sert une fonction de hachage
Une fonction de hachage transforme une entrée de taille quelconque en une empreinte de longueur fixe. Deux propriétés la rendent utile : la même entrée donne toujours la même empreinte, et il est impossible de remonter à l'entrée depuis l'empreinte.
Concrètement, on s'en sert pour vérifier qu'un fichier téléchargé n'a pas été altéré (on compare l'empreinte publiée à celle qu'on calcule), pour détecter des doublons, ou pour signer des données. Le calcul se fait ici dans votre navigateur — utile quand on manipule une valeur sensible.
Quel algorithme choisir
- MD5 (128 bits) — cassé. On sait produire deux fichiers différents avec la même empreinte depuis 2004. Acceptable pour détecter une corruption accidentelle, jamais pour de la sécurité.
- SHA-1 (160 bits) — cassé aussi. Une collision réelle a été produite en 2017 (attaque SHAttered), et les navigateurs l'ont abandonné pour les certificats.
- SHA-256 (256 bits) — le choix par défaut aujourd'hui. Aucune attaque pratique connue, largement supporté.
L'erreur à ne pas commettre : hacher un mot de passe
Un hash simple, même en SHA-256, est inadapté au stockage des mots de passe. Ces fonctions sont conçues pour être rapides — c'est exactement ce qu'on ne veut pas : une carte graphique teste des milliards de combinaisons par seconde, et les mots de passe courants sont déjà répertoriés dans des tables toutes faites.
Pour un mot de passe, il faut une fonction volontairement lente et dotée d'un sel unique : bcrypt, scrypt ou Argon2. Elles sont paramétrables pour rester coûteuses à mesure que le matériel progresse.
Et rappelez-vous qu'un hash n'est pas un chiffrement : il ne se « déchiffre » pas. Les sites qui prétendent « décrypter un MD5 » se contentent de chercher l'empreinte dans une base de valeurs déjà calculées.