Passlib: Passwort-Hashing in Python

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Was ist Passlib?

Passlib ist eine leistungsstarke Python-Bibliothek, die speziell für sicheres Passwort-Hashing entwickelt wurde. Sie bietet eine hochwertige Lösung, die zahlreiche kryptografische Algorithmen unter einer einheitlichen Oberfläche vereint. Die Bibliothek wird weltweit von Entwicklern eingesetzt, um zuverlässige Authentifizierungssysteme zu erstellen.

Das Hauptziel von Passlib ist es, Entwicklern eine einfache und sichere Methode zur Passwortverarbeitung zu bieten, indem es die Komplexität kryptografischer Operationen hinter einer intuitiven API verbirgt. Die Bibliothek unterstützt über 30 verschiedene Hashing-Algorithmen, von modernen Standards bis hin zu älteren Formaten für Kompatibilitätszwecke.

Warum Passlib für die moderne Entwicklung unverzichtbar ist

Probleme traditioneller Ansätze

Viele Entwickler verwenden immer noch veraltete Methoden zum Passwort-Hashing, wie einfaches SHA-256 oder MD5. Diese Ansätze haben kritische Schwachstellen:

  • Kein Schutz vor Rainbow-Table-Angriffen
  • Anfälligkeit für Brute-Force-Angriffe
  • Keine Anpassungsfähigkeit an steigende Rechenleistung
  • Fehlender Schutz vor Timing-Angriffen

Vorteile des modernen Ansatzes

Passlib löst diese Probleme durch:

  • Automatisches Hinzufügen eines Salt zu jedem Passwort
  • Konfigurierbare Iterationsanzahl zur Verlangsamung von Angriffen
  • Schutz vor Timing-Angriffen durch konstante Ausführungszeit
  • Möglichkeit zur Migration zwischen Algorithmen ohne Datenverlust

Installation und Einrichtung

Basisinstallation

pip install passlib

Installation mit Unterstützung für zusätzliche Algorithmen

Um Zugriff auf moderne Hashing-Algorithmen zu erhalten, wird die Installation zusätzlicher Abhängigkeiten empfohlen:

pip install passlib[bcrypt,argon2]

Installation überprüfen

Nach der Installation können Sie die verfügbaren Algorithmen überprüfen:

from passlib import registry
print(registry.list_crypt_handlers())

Architektur und Kernkomponenten

Struktur der Bibliothek

Passlib basiert auf einer modularen Architektur, die Folgendes umfasst:

  • Hash-Handler — Implementierungen spezifischer Algorithmen
  • CryptContext — zentrale Verwaltung der Einstellungen
  • Registry — System zur Registrierung und Suche von Handlern
  • Hilfsfunktionen — unterstützende Funktionen für sichere Operationen

Funktionsprinzipien

Die Bibliothek folgt dem Prinzip "Sicherheit standardmäßig" und wendet automatisch bewährte kryptografische Praktiken an. Jeder Algorithmus ist in einem eigenen Handler mit einer einheitlichen Schnittstelle gekapselt.

Schnellstart

Einfaches Hashing

from passlib.hash import pbkdf2_sha256

# Hash erstellen
password = "my_secure_password"
hash_value = pbkdf2_sha256.hash(password)
print(f"Hash: {hash_value}")

# Passwort überprüfen
is_valid = pbkdf2_sha256.verify(password, hash_value)
print(f"Passwort korrekt: {is_valid}")

Verwendung von CryptContext

from passlib.context import CryptContext

# Kontext mit mehreren Algorithmen erstellen
pwd_context = CryptContext(
    schemes=["bcrypt", "pbkdf2_sha256"],
    default="bcrypt",
    deprecated="auto"
)

# Hashing und Überprüfung
hash_value = pwd_context.hash("user_password")
is_valid = pwd_context.verify("user_password", hash_value)

Unterstützte Hashing-Algorithmen

Moderne empfohlene Algorithmen

Argon2

Gewinner des Password Hashing Competition 2015. Bietet Schutz vor Angriffen

Empfehlungen