Passwörter sicher behandeln
Absolute Regel
Niemals Passwörter im Klartext speichern.
Stattdessen: Hash (einseitige Prüffunktion).
Werkzeug in Flask-Ökosystem
from werkzeug.security import generate_password_hash, check_password_hash
pw_hash = generate_password_hash("geheim123")
print(check_password_hash(pw_hash, "geheim123")) # True
print(check_password_hash(pw_hash, "falsch")) # False
In der DB nur pw_hash speichern.
Gute Gewohnheiten
- Mindestlänge
- nie ins Log schreiben
- nie in der URL
- sichere Verbindung später (HTTPS) in Produktion
Rate mal!
Kann man aus dem Hash das Passwort „zurückrechnen“?
Auflösung
Praktisch nicht – man prüft nur, ob die Eingabe denselben Hash erzeugt.
Probiere es selbst
Experiment 1
Hash erzeugen.
Experiment 2
Richtig/falsch prüfen.
Experiment 3
Zwei Hashes derselben Eingabe anschauen (Salt → meist unterschiedlich).
Übungen
Level 1
Warum kein Klartext?
Level 2
generate + check.
Level 3
User-Tabelle-Felder skizzieren (username, password_hash).
Level-2-Lösung
Siehe Codebeispiel oben.
Mini-Quiz
Hashes sitzen! Als Nächstes: Login und geschützte Routen.