Zum Hauptinhalt springen

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

Mini-QuizWas speichert man in der DB?

Hashes sitzen! Als Nächstes: Login und geschützte Routen.