Passlib – hachage de mots de passe en Python

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Qu'est-ce que Passlib ?

Passlib est une bibliothèque Python puissante, spécialement conçue pour le hachage sécurisé des mots de passe. Elle offre une solution de haut niveau qui regroupe de nombreux algorithmes cryptographiques sous une interface unifiée. Cette bibliothèque est largement utilisée par les développeurs du monde entier pour créer des systèmes d'authentification robustes.

L'objectif principal de Passlib est de fournir aux développeurs un moyen simple et sûr de gérer les mots de passe, en masquant la complexité des opérations cryptographiques derrière une API intuitive. La bibliothèque prend en charge plus de 30 algorithmes de hachage différents, des standards modernes aux formats plus anciens pour assurer la compatibilité.

Pourquoi Passlib est essentiel pour le développement moderne

Les limites des approches traditionnelles

De nombreux développeurs utilisent encore des méthodes de hachage obsolètes, comme l'application simple de SHA-256 ou MD5. Ces approches présentent des défauts critiques :

  • Absence de protection contre les tables arc-en-ciel
  • Vulnérabilité aux attaques par force brute
  • Impossibilité de s'adapter à l'augmentation de la puissance de calcul
  • Absence de protection contre les attaques temporelles

Les avantages d'une approche moderne

Passlib résout ces problèmes en offrant :

  • Ajout automatique d'un sel unique à chaque mot de passe
  • Nombre d'itérations configurable pour ralentir les attaques
  • Protection contre les attaques temporelles grâce à un temps d'exécution constant
  • Possibilité de migrer entre algorithmes sans perte de données

Installation et configuration

Installation de base

pip install passlib

Installation avec prise en charge des algorithmes avancés

Pour accéder aux algorithmes de hachage modernes, il est recommandé d'installer les dépendances supplémentaires :

pip install passlib[bcrypt,argon2]

Vérification de l'installation

Après l'installation, vous pouvez vérifier les algorithmes disponibles :

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

Architecture et composants principaux

Structure de la bibliothèque

Passlib repose sur une architecture modulaire comprenant :

  • Gestionnaires d'algorithmes (Hash Handlers) — implémentations spécifiques des algorithmes
  • Contexte cryptographique (CryptContext) — gestion centralisée des paramètres
  • Registre des algorithmes (Registry) — système d'enregistrement et de recherche des gestionnaires
  • Utilitaires — fonctions auxiliaires pour des opérations sécurisées

Principes de fonctionnement

La bibliothèque suit le principe de "sécurité par défaut", en appliquant automatiquement les meilleures pratiques cryptographiques. Chaque algorithme est encapsulé dans un gestionnaire dédié avec une interface unifiée.

Démarrage rapide

Hachage simple

from passlib.hash import pbkdf2_sha256

# Création d'un hachage
password = "my_secure_password"
hash_value = pbkdf2_sha256.hash(password)
print(f"Hachage : {hash_value}")

# Vérification du mot de passe
is_valid = pbkdf2_sha256.verify(password, hash_value)
print(f"Mot de passe correct : {is_valid}")

Utilisation de CryptContext

from passlib.context import CryptContext

# Création d'un contexte avec plusieurs algorithmes
pwd_context = CryptContext(
    schemes=["bcrypt", "pbkdf2_sha256"],
    default="bcrypt",
    deprecated="auto"
)

# Hachage et vérification
hash_value = pwd_context.hash("user_password")
is_valid = pwd_context.verify("user_password", hash_value)

Algorithmes de hachage pris en charge

Algorithmes modernes recommandés

Argon2

Vainqueur du concours Password Hashing Competition en 2015. Il offre une protection contre les attaques

Recommendations