Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Stocker les mots de passe hachés

Après cette leçon: Je peux expliquer pourquoi on stocke les mots de passe sous forme d’empreinte.

Leçon de 45 minAucune commande

La base clients a fuité

Un site de billets de concert se fait voler sa base clients. Elle contient 200 000 adresses e-mail et mots de passe.

Beaucoup de clients utilisent le même mot de passe pour leur messagerie. Si les mots de passe sont lisibles, l’attaquant peut entrer partout.

Un système bien conçu ne garde jamais le mot de passe lui-même. Voyons ce qu’il garde à la place.

À la fin de cette leçon

Remarque

Je peux expliquer pourquoi on stocke les mots de passe sous forme d’empreinte.

Mots clés

MotCe que ça veut direExemple
En clairlisible tel quel par n’importe qui
Fonction de hachageun calcul qui transforme un texte en code de longueur fixeSHA-256
Empreintele code obtenu, impossible à inverser
Selun texte aléatoire ajouté avant le hachage
Fuite de donnéesdes données prises par quelqu’un qui n’y a pas droit

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Une empreinte ne marche que dans un sens

Une fonction de hachage transforme n’importe quel texte en un code de longueur fixe. Ce code est l’empreinte.

Le même texte donne toujours la même empreinte. Changez une seule lettre et l’empreinte change complètement.

On ne peut pas retrouver le texte à partir de l’empreinte. C’est pour cela qu’on peut la garder sans danger.

Essayez : hacher des mots de passe

Code: python
import hashlib


def empreinte(texte):
    # encode() transforme le texte en octets, ce que hashlib attend
    return hashlib.sha256(texte.encode()).hexdigest()


print(empreinte("soleil2026"))
print(empreinte("soleil2026"))
print(empreinte("Soleil2026"))
print(len(empreinte("a")), len(empreinte("un mot de passe bien plus long")))

# Changez une lettre de "soleil2026", puis relancez.

Se connecter, c’est comparer deux empreintes

À l’inscription, le système calcule l’empreinte de votre mot de passe. Il ne garde que cette empreinte.

À la connexion, il calcule l’empreinte de ce que vous tapez. Puis il la compare à celle qu’il a gardée. Si les deux sont identiques, vous entrez.

Le système n’a jamais besoin de connaître votre mot de passe. Un voleur de la base n’obtient que des empreintes.

Le sel distingue deux mots de passe identiques

Deux personnes avec le même mot de passe ont la même empreinte. Un attaquant le voit tout de suite. Il peut aussi chercher les empreintes courantes dans de grandes listes préparées à l’avance.

Le sel règle ce problème. Le système ajoute un texte aléatoire à chaque mot de passe avant de le hacher. Le sel est gardé à côté de l’empreinte. Il n’a pas besoin d’être secret.

Essayez : ajouter un sel

Code: python
import hashlib


def empreinte(texte):
    return hashlib.sha256(texte.encode()).hexdigest()


# Deux salariés ont choisi le même mot de passe
print("Léa :", empreinte("soleil2026")[:16])
print("Hugo :", empreinte("soleil2026")[:16])

# Chacun reçoit son propre sel, gardé à côté de l'empreinte
print("Léa :", empreinte("x7Q2" + "soleil2026")[:16])
print("Hugo :", empreinte("k9Lp" + "soleil2026")[:16])

# Donnez à Hugo le sel "x7Q2". Que devient son empreinte ?

Une erreur fréquente

Attention

Beaucoup pensent que hacher et chiffrer, c’est pareil. Une donnée chiffrée se déchiffre avec une clé. Une empreinte ne se défait pas, même avec une clé. Gardez les mots de passe hachés, car personne, pas même vous, ne doit pouvoir les lire.

Dans un vrai poste

Astuce

SHA-256 est rapide, ce qui aide un attaquant qui teste des milliards de mots de passe. Les vrais systèmes utilisent un hachage lent comme bcrypt ou Argon2, qui ajoute le sel tout seul. L’idée reste celle de cette leçon.

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.