← Retour aux projets


Projet personnel
Analyseur de force de mot de passe (CLI Python)
Analyseur de force de mot de passe — entropie, regex, HaveIBeenPwned (CLI Python)
Contexte
Outil CLI personnel centré sur la sécurité : évalue rigoureusement la force d un mot de passe sans jamais le transmettre en clair. Conçu pour explorer le moteur regex de Python, le calcul d entropie et la conception d API respectueuses de la vie privée (k-anonymat HaveIBeenPwned). L outil fonctionne en mode interactif dans le terminal et produit un rapport structuré complet en une seule passe.
Fonctionnalités développées
- Calcul d entropie : log₂(pool^longueur) adapté au pool de caractères — score composite 0-100
- 6 règles regex compilées : caractères répétés, séquences numériques/alphabétiques, walks clavier (qwerty/azerty), années intégrées
- Correspondance dictionnaire : 30+ mots de passe courants et mots de base
- Estimation du temps de crack à 3 vitesses d attaque (10k/s, 1M/s, 1 milliard/s)
- Intégration HaveIBeenPwned par k-anonymat : seuls les 5 premiers caractères du hash SHA-1 envoyés — le mot de passe ne quitte jamais la machine
- Sortie terminal ANSI colorée avec barre de progression, checklist par critère et suggestions d amélioration
Stack & Technologies
- Python 3 stdlib — re, hashlib (SHA-1), math, getpass (masquage saisie)
- Regex compilés — 6 règles (RE_REPEAT, RE_SEQ_NUM, RE_KEYBOARD...)
- k-anonymat HIBP — seul le préfixe SHA-1 de 5 caractères envoyé à l API
- requests (optionnel) — appel API HaveIBeenPwned
- ANSI escape codes — sortie colorée et barre de progression en terminal
- Aucune dépendance obligatoire — fonctionne avec la stdlib seule
Fonctionnement
- 1Saisie sécuriséegetpass.getpass() utilisé pour masquer la saisie du mot de passe dans le terminal — jamais affiché en clair.
- 2Calcul d entropie & scorePool de caractères détecté (minuscules, majuscules, chiffres, spéciaux). Entropie calculée : log₂(pool^longueur). Score composite 0-100 avec bonus longueur et complexité.
- 3Analyse de patterns6 règles regex compilées appliquées : répétitions, séquences, walks clavier, années intégrées. Chaque pattern détecté pénalise le score.
- 4Vérification HIBPHash SHA-1 du mot de passe calculé. Seuls les 5 premiers caractères envoyés à l API HIBP (k-anonymat). Réponse analysée pour détecter une compromission sans révéler le mot de passe.
- 5Rapport terminalSortie ANSI colorée : score, barre de progression, checklist des critères, estimation du temps de crack, suggestions d amélioration ciblées.
Choix techniques clés
- Modèle d entropie
- log₂(pool^longueur)(Adapté au pool de caractères)
- Confidentialité HIBP
- k-anonymat(5 chars SHA-1 seulement envoyés)
- Moteur de patterns
- 6 règles regex(RE_REPEAT, RE_SEQ_NUM, RE_KEYBOARD...)
- Score
- 0–100(Bonus longueur, complexité, entropie + pénalités)
- Dépendances
- Zéro obligatoire(stdlib uniquement (requests optionnel))