🚨 Règle N°1 du web : Ne JAMAIS stocker des mots de passe en clair dans la base de données. Si tu stockes "123456", et que ta base fuite, tous tes utilisateurs sont compromis.
On doit hasher le mot de passe.
"Hasher", c'est transformer "123456" en une bouillie illisible du genre pbkdf2:sha256:260000....
C'est irréversible. On ne peut pas retrouver "123456" depuis le hash.
Comment vérifier le mot de passe alors ?
Quand l'utilisateur se connecte :
- Il tappe "123456".
- On hashe "123456".
- On compare ce nouveau hash avec celui stocké en base.
- Si c'est les mêmes, c'est gagné !
Avec Flask (Werkzeug)
Pas besoin d'installer de librairie externe, Flask a tout ce qu'il faut via Werkzeug.
from werkzeug.security import generate_password_hash, check_password_hash
# 1. Inscription (Création du hash)
password_clair = "secret123"
password_hashé = generate_password_hash(password_clair)
print(password_hashé)
# Affiche un truc genre : pbkdf2:sha256:260000$....
# 2. Login (Vérification)
entree_utilisateur = "secret123"
est_valide = check_password_hash(password_hashé, entree_utilisateur)
print(est_valide) # True
entree_fausse = "azerty"
print(check_password_hash(password_hashé, entree_fausse)) # False
C'est simple, c'est robuste, c'est sécurisé.