Hacher les mots de passe, ne jamais les stocker en clair
Utilisez Werkzeug pour hacher et vérifier les mots de passe.
Hacher les mots de passe, ne jamais les stocker en clair est une leçon Flask Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Flask Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Flask Academy comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
Plaintext Is a Disaster
If you store passwords as plaintext, one database leak hands attackers every account at once. The first rule of auth is simple: never save the raw password. 🔒
Hashing, Not Encrypting
You protect passwords with hashing, a one-way transform. Unlike encryption, a hash cannot be reversed back into the original password, even by you.
Werkzeug Has It Built In
Flask ships with Werkzeug, which gives you two helpers for password security. You import them straight from its security module, no extra install needed.
from werkzeug.security import generate_password_hash, check_password_hashHash on Sign-Up
When a user registers, run generate_password_hash on their password and store only the result. The plaintext never touches your database.
hashed = generate_password_hash("hunter2")
user.password_hash = hashedSalt Comes Free
generate_password_hash adds a random salt for you. That is why two users with the same password get totally different stored hashes.
Verify on Login
At login you cannot un-hash anything. Instead you call check_password_hash with the stored hash and the typed password to get a True or False.
ok = check_password_hash(user.password_hash, "hunter2")Argument Order Matters
Remember the order: the stored hash comes first, the user-supplied password second. Swapping them silently breaks every login attempt.
check_password_hash(stored_hash, typed_password)Pick a Strong Method
By default Werkzeug uses a strong, slow algorithm on purpose. Slowness is a feature here, because it makes brute-force guessing far more expensive.
generate_password_hash(pw, method="pbkdf2:sha256")Store the Hash, Not More
Your user table needs a single password_hash column. You never need a separate salt column, since the salt is baked into the hash string itself.
password_hash = db.Column(db.String(255))Helper Methods on User
A clean trick is to put a set_password method on your User model so hashing lives in one place and your routes stay tidy.
def set_password(self, pw):
self.password_hash = generate_password_hash(pw)Never Log the Password
Even during debugging, do not print or log the raw password. A stray log line can leak credentials just as badly as a database breach can.
Quick Check
You need to confirm a login. Which call should you use?
Recap
You learned to hash with generate_password_hash, store only the result, and verify with check_password_hash. Plaintext passwords are gone for good. 🎉
Questions Fréquemment Posées
La leçon « Hacher les mots de passe, ne jamais les stocker en clair » est-elle gratuite ?
Oui — le texte complet de « Hacher les mots de passe, ne jamais les stocker en clair » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Flask Academy, passe à CoddyKit PRO. Le cours Flask Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Hacher les mots de passe, ne jamais les stocker en clair » ?
Utilisez Werkzeug pour hacher et vérifier les mots de passe. Tu pratiques Flask Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Flask Academy ?
Aucune expérience préalable n'est requise. Flask Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Hacher les mots de passe, ne jamais les stocker en clair » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Flask Academy ?
Oui. Chaque leçon Flask Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Hacher les mots de passe, ne jamais les stocker en clair
- Chargeur d’utilisateurs et UserMixin
- login_user, logout_user et les sessions
- Protéger les vues avec login_required