Aller au contenu
Retour aux projets
Cover
Projet personnel

Analyseur de force de mot de passe (CLI Python)

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

  1. 1
    Saisie sécurisée
    getpass.getpass() utilisé pour masquer la saisie du mot de passe dans le terminal — jamais affiché en clair.
  2. 2
    Calcul d entropie & score
    Pool 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é.
  3. 3
    Analyse de patterns
    6 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.
  4. 4
    Vérification HIBP
    Hash 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.
  5. 5
    Rapport terminal
    Sortie 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))

Captures d'écran

Screenshot 1