Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !
password_generator — Un CLI de génération de mots de passe prêt pour la production et cryptographiquement sécurisé, avec 17 modes de génération, une transparence de l'entropie et des options de personnalisation complètes. | Kitploit
Un CLI de génération de mots de passe prêt pour la production et cryptographiquement sécurisé, avec 17 modes de génération, une transparence de l'entropie et des options de personnalisation complètes.
PassForge - Générateur de mots de passe tout-en-un en CLI
Un générateur de mots de passe CLI prêt pour la production, cryptographiquement sécurisé, avec 17 modes de génération, transparence d'entropie et options de personnalisation complètes.
Fonctionnalités
17 modes de génération
Générateur
Commande
Description
Aléatoire
random, r
Mots de passe aléatoires cryptographiquement sécurisés
Passphrase
phrase, p
Passphrases basées sur des mots utilisant la liste EFF
Leetspeak
leet, l
Passphrases avec substitution de caractères (A→4, E→3, etc.)
Code PIN
pin
Codes PIN numériques de longueur configurable
Prononçable
pronounce, pr
Mots de passe faciles à prononcer basés sur des syllabes
UUID
uuid, u
UUID RFC 4122/9562 (v1, v4, v7) et court (Base58)
Base64
base64, b64
Secrets encodés en base64 sécurisés pour les URL
Secret JWT
jwt
Secrets à haute entropie pour la signature JWT (HS256/384/512)
Clé WiFi
wifi
Clés compatibles WPA2/WPA3 (8-63 caractères)
Clé de licence
license
Clés de licence logicielles (format AXB, ex. 5x5)
Codes de récupération
recovery
Codes de sauvegarde 2FA (numériques ou basés sur des mots)
Code/Secret OTP
otp
Codes TOTP/HOTP et secrets avec URI otpauth
Motif
pattern
Mots de passe basés sur des grilles visuelles
Phrase thématique
phrase (personnalisé)
Passphrases à partir de listes de mots thématiques (animaux, science-fiction, etc.)
Phonétique OTAN
phonetic, ph
Convertir du texte/mots de passe en alphabet OTAN (Alpha-Bravo)
Analyser
analyze, check
Analyser la robustesse d'un mot de passe existant
Historique
history
Afficher l'historique des générations de mots de passe (10 entrées par défaut)
Profils prédéfinis : Génération en un clic pour les cas d'utilisation courants (Fort, Mémorisable, Développeur, etc.)
Menu interactif : Menu complet pour une génération guidée
Lanceurs plateforme : Scripts .bat et .sh dédiés avec menus interactifs
Sécurité cryptographique : Utilise le module secrets de Python pour le CSPRNG
Transparence d'entropie : Calcul d'entropie en temps réel et analyse de robustesse
Analyse zxcvbn : Vérification de la robustesse des mots de passe basée sur des motifs (attaques par dictionnaire, séquences)
Presse-papiers sécurisé : Effacement automatique du presse-papiers après un délai configurable
Codes OTP en direct : Génère les codes TOTP actuels à 6/8 chiffres en parallèle du secret
Codes QR pour OTP : Codes QR scannables pour les applications d'authentification
Sortie colorée : Distinction visuelle entre les types de caractères
Export JSON : Sortie lisible par machine pour les scripts
Mode équilibré : Assure une distribution lisible (60% Lettres, 20% Chiffres, 20% Symboles)
Guide du générateur : Documentation complète pour les 14 types de générateurs.
Historique chiffré (Coffre) : Chiffre automatiquement les mots de passe sauvegardés avec AES-128 (Fernet).
Stockage sécurisé du coffre : Un coffre dédié gère les clés cryptographiques via .env (recommandé) ou .vault.key hérité avec des permissions strictes 0600
Architecture zéro fuite : 🛡️ Le code source et les logs sont bloqués de l'accès navigateur en mode PWA ; les entrées sensibles sont masquées en mode CLI pour l'analyse d'entropie.
Exportations expurgées : Export d'historique prioritaire à la sécurité avec expurgation automatique des mots de passe par défaut
Interface sans retrait : Sortie professionnelle alignée à gauche pour tous les modes
Leetspeak intelligent : Substitution probabiliste pour des mots de passe plus naturels et lisibles
Validation robuste : Invites interactives avec valeurs par défaut et gestion récursive des erreurs
Frontend PWA défensif : 🛡️ Contrôles de sécurité intégrés pour les actifs CDN afin d'éviter les plantages lors de l'initialisation.
Modificateurs globaux : Modes --easy-read et --easy-say
Mode paranoïaque : Collecte manuelle d'entropie optionnelle via la gigue de synchronisation du clavier pour une sécurité maximale.
Installation
root@kitploit:~
# Clonez le dépôt
git clone https://github.com/krishnakanthb13/password_generator.git
cd password_generator
# Installez les dépendances (colorama, cryptography, pyperclip, etc.)
pip install -r requirements.txt
Démarrage rapide
root@kitploit:~
# Générer un mot de passe aléatoire de 20 caractères
python main.py random -l 20
# Générer une passphrase de 4 mots
python main.py phrase -w 4 --capitalize
# Générer une passphrase en leetspeak
python main.py leet -w 3 -s _
# Générer avec analyse d'entropie
python main.py --show-entropy random -l 16
# Lancer le mode interactif
python main.py --interactive
# Utiliser un profil prédéfini (Fort)
python main.py --preset strong --show-entropy
Exemples d'utilisation
Mots de passe aléatoires
root@kitploit:~
# Mot de passe basique de 16 caractères
python main.py random
# 24 caractères, lettres seulement
python main.py random -l 24 --no-symbols --no-digits
# Facile à lire (pas de 0/O, 1/l/I)
python main.py --easy-read random -l 20
# Avec exigences minimales
python main.py random -l 16 --min-upper 2 --min-digits 2 --min-symbols 1
# Mode équilibré (surtout des lettres, moins de symboles)
python main.py random -l 24 --balanced
Passphrases
root@kitploit:~
# Passphrase standard de 4 mots
python main.py phrase -w 4
# Avec capitalisation et séparateur underscore
python main.py phrase -w 5 -s _ --capitalize
# Casse alternée (Haute entropie)
python main.py phrase -w 4 -s . --alternate
# Sortie : aPpLe.bAnAnA.cHeRrY.dAtE
# Tout en majuscules avec séparateur trait d'union (Haute entropie)
python main.py phrase -w 4 -s . --uppercase
# Sortie : APPLE-BANANA-CHERRY-DATE
# Version leetspeak (Substitution intelligente de 50 %)
python main.py leet -w 4 -s -
# Sortie : 4PPl3.8@N@[email protected]
# Passphrase thématique (en utilisant 'animals.txt')
python main.py phrase -w 4 --capitalize --wordlist data/wordlists/animals.txt
# Sortie : Tiger-Falcon-Shark-Wolf
# Analyser un mot de passe existant
python main.py analyze "p@ssword123"
# Enregistrer dans l'historique
python main.py --log random -l 16
# Voir les 10 dernières entrées d'historique (par défaut)
python main.py history
# Voir toutes les entrées d'historique (déchiffrées à la volée)
python main.py history --all
# Voir l'historique avec mots de passe expurgés
python main.py history --redact
# Exporter l'historique (Expurgé par défaut)
python main.py history --export backup.json
# Exporter l'historique (en texte clair - nécessite prudence)
python main.py history --export secrets.csv --no-redact
# Sortie JSON pour les scripts
python main.py --json jwt --bits 256
Référence des commandes
Option
Description
--preset
Utiliser un profil de sécurité prédéfini (strong, memorable, dev, pin, web, wifi, key)
-i, --interactive
Lancer le mode menu interactif
--paranoid
Activer le mode paranoïaque (collecte manuelle d'entropie)
--json
Sortie au format JSON
--show-entropy
Afficher l'analyse d'entropie (activée par défaut dans les lanceurs)
--check-strength
Exécuter l'analyse de motifs zxcvbn
-c, --clipboard
Copier le résultat dans le presse-papiers
--confirm-copy
Demander confirmation avant de copier dans le presse-papiers
--clipboard-timeout
Effacement automatique du presse-papiers après N secondes (défaut : 30)
--log
Enregistrer le mot de passe dans l'historique (chiffré AES-128)
--no-color
Désactiver la sortie colorée
--easy-read
Exclure les caractères ambigus (0/O, 1/l/I)
--easy-say
Uniquement des caractères prononçables (pas de symboles)
Options spécifiques aux générateurs
Aléatoire (random, r)
Option
Défaut
Description
-l, --length
16
Longueur du mot de passe (4-1024)
--no-uppercase
-
Exclure les lettres majuscules
--no-lowercase
-
Exclure les lettres minuscules
--no-digits
-
Exclure les chiffres
--no-symbols
-
Exclure les symboles
--include
-
Caractères supplémentaires à inclure
--exclude
-
Caractères à exclure
--no-repeats
-
Aucun caractère répété
--min-upper
0
Minimum de caractères majuscules
--min-lower
0
Minimum de caractères minuscules
--min-digits
0
Minimum de chiffres
--min-symbols
0
Minimum de symboles
--balanced
-
Ratio équilibré (60/20/20)
-n, --count
1
Nombre à générer
Passphrase (phrase, p)
Option
Défaut
Description
-w, --words
4
Nombre de mots (2-64)
-s, --separator
-
Séparateur de mots
--capitalize
-
Mettre chaque mot en majuscule initiale
--uppercase
-
Tous les mots en majuscules
--alternate
-
Casse alternée (aLtErNaTe)
--wordlist
-
Chemin vers une liste de mots personnalisée
-n, --count
1
Nombre à générer
Leetspeak (leet, l)
Option
Défaut
Description
-w, --words
3
Nombre de mots (2-64)
-s, --separator
-
Séparateur de mots ( - _ . , )
-n, --count
1
Nombre à générer
Code PIN (pin)
Option
Défaut
Description
-l, --length
6
Longueur du PIN (4-64)
-n, --count
1
Nombre à générer
Prononçable (pronounce, pr)
Option
Défaut
Description
-l, --length
12
Longueur du mot de passe (4-128)
-n, --count
1
Nombre à générer
UUID (uuid)
Option
Défaut
Description
--ver
4
Version UUID (1, 4, 7)
--short
-
Format court (Base58)
--upper
-
Sortie en majuscules (hex uniquement)
-n, --count
1
Nombre à générer
Base64 (base64, b64)
Option
Défaut
Description
-b, --bytes
32
Nombre d'octets aléatoires
--url-safe
-
Utiliser des caractères sécurisés pour les URL
Secret JWT (jwt)
Option
Défaut
Description
--bits
256
Longueur en bits (256, 384, 512)
--hex
-
Sortie sous forme de chaîne hexadécimale
Clé WiFi (wifi)
Option
Défaut
Description
-l, --length
24
Longueur de la clé (8-63, défaut : 24)
--simple
-
Alphanumérique uniquement (pas de symboles)
Clé de licence (license)
Option
Défaut
Description
--segments
4
Nombre de segments (2-64)
--segment-length
4
Caractères par segment (2-32)
Codes de récupération (recovery)
Option
Défaut
Description
-n, --count
10
Nombre de codes (5-20, défaut : 10)
-l, --length
10
Longueur du code (chiffres ou mots, défaut : 10/3)
--words
-
Utiliser des codes basés sur des mots
Secret OTP (otp)
Option
Défaut
Description
--digits
6
Longueur du code (6 ou 8)
--period
30
Période de temps en secondes
--qr
-
Afficher le code QR dans le terminal
Motif (pattern)
Option
Défaut
Description
--grid
3
Taille de la grille (ex. 3x3)
Phonétique (phonetic, ph)
Option
Défaut
Description
--text
-
Texte à convertir en alphabet OTAN
-l, --length
8
Longueur de la séquence aléatoire (4-64)
Historique (history)
Option
Défaut
Description
--last
10
Afficher les N dernières entrées (1-100, défaut : 10)
--all, -a
-
Afficher toutes les entrées de l'historique (remplace --last)
--search
-
Filtrer l'historique par mot-clé
--redact
-
Expurger les mots de passe dans la sortie du terminal
--export
-
Exporter l'historique vers un fichier (JSON/CSV)
--no-redact
-
Ne pas expurger les mots de passe dans l'export (Attention !)
--clear
-
Effacer toutes les entrées de l'historique
Guide d'entropie
PassForge fournit un rapport d'entropie complet incluant la taille brute du pool de caractères, les bits de Shannon et les estimations de temps de force brute.
Entropie (bits)
Robustesse
Cas d'utilisation
< 28
Très faible
Ne jamais utiliser
28-36
Faible
Sécurité faible uniquement
36-60
Raisonnable
Comptes standards
60-80
Forte
Données sensibles
80-128
Très forte
Systèmes haute sécurité
> 128
Excellente
Infrastructure critique
Remarque : Pour une explication détaillée de chaque type de générateur, voir LITERATURE.md.
Structure du projet
root@kitploit:~
password_generator/
├── main.py # Point d'entrée
├── requirements.txt # Dépendances
├── src/
│ ├── __init__.py
│ ├── cli.py # Analyseur d'arguments & bannière
│ ├── command_handler.py # Routage des commandes
│ ├── interactive.py # Menu interactif
│ ├── generators/ # Tous les générateurs de mots de passe
│ │ ├── base.py # Classe de base abstraite
│ │ ├── random_password.py # Générateur de mots de passe aléatoires
│ │ ├── passphrase.py # Générateur de passphrases
│ │ ├── leetspeak.py # Générateur leetspeak
│ │ ├── pin.py # Générateur de codes PIN
│ │ ├── pronounceable.py # Générateur de mots de passe prononçables
│ │ ├── uuid_token.py # Générateur de jetons UUID
│ │ ├── base64_secret.py # Générateur de secrets Base64
│ │ ├── jwt_secret.py # Générateur de secrets JWT
│ │ ├── wifi_key.py # Générateur de clés WiFi
│ │ ├── license_key.py # Générateur de clés de licence
│ │ ├── recovery_codes.py # Générateur de codes de récupération
│ │ ├── otp.py # Générateur OTP
│ │ ├── pattern.py # Générateur de motifs
│ │ └── phonetic.py # Générateur phonétique OTAN
│ ├── security/
│ │ ├── entropy.py # Calculateur d'entropie
│ │ ├── strength_checker.py # Intégration zxcvbn
│ │ └── vault.py # Chiffrement sécurisé de l'historique
│ ├── output/
│ │ ├── formatter.py # Sortie colorée
│ │ ├── logger.py # Journalisation de l'historique
│ │ ├── clipboard.py # Gestion sécurisée du presse-papiers
│ │ └── qrcode_gen.py # Génération de codes QR pour OTP
│ ├── config/
│ │ ├── loader.py # Chargeur de configuration YAML/JSON
│ │ └── presets.py # Profils de sécurité prédéfinis
├── data/
│ └── wordlists/ # Listes de mots thématiques (animals.txt, biology.txt, etc.)
└── tests/
Tests
root@kitploit:~
# Exécuter tous les tests
python -m pytest tests/ -v
# Exécuter une classe de test spécifique
python -m pytest tests/test_generators.py::TestRandomPasswordGenerator -v
# Exécuter avec couverture
python -m pytest tests/ --cov=src --cov-report=html
Les 53 tests unitaires couvrent :
Les 15 modes de générateur spécialisés
Les calculateurs d'entropie et de robustesse zxcvbn
L'effacement automatique du presse-papiers et le stockage sécurisé
La logique de génération de codes QR ASCII
Le chargement de la configuration et les profils prédéfinis
Configuration
PassForge prend en charge les fichiers de configuration au format YAML ou JSON.
Emplacements des fichiers de configuration (recherchés dans l'ordre) :
./passforge.yaml ou ./passforge.json
./.passforge.yaml ou ./.passforge.json
~/.passforge/config.yaml ou ~/.passforge/config.json
Voir passforge.example.json pour toutes les options disponibles.
Construction d'un exécutable autonome
PassForge peut être compilé en un seul exécutable autonome en utilisant PyInstaller.
Windows
root@kitploit:~
# En utilisant le script de construction
passforge_build.bat
# Ou manuellement
pip install pyinstaller
pyinstaller --onefile --name passforge --console main.py
Linux/macOS
root@kitploit:~
# En utilisant le script de construction
chmod +x passforge_build.sh
./passforge_build.sh
# Ou manuellement
pip install pyinstaller
pyinstaller --onefile --name passforge --console main.py
L'exécutable sera créé dans le dossier dist/ (~7 Mo, zéro dépendance).
🌐 PassForge Web (Module complémentaire PWA)
PassForge inclut désormais une interface Web moderne et réactive (PWA) qui offre un moyen visuel de générer et gérer les mots de passe tout en maintenant une parité complète avec la version CLI.
Principales fonctionnalités
Interface latérale : Navigation facile entre tous les types de générateurs.
Curseurs visuels : Ajustez les longueurs et le nombre de mots avec des curseurs interactifs.
Support QR : Génération instantanée de codes QR pour partager des mots de passe ou des secrets OTP.
Mode sombre/clair : Esthétique premium avec changement de thème adapté au système.
Installable : Prise en charge de l'installation PWA sur Windows, Linux et mobile.
Historique partagé : Utilise le même fichier de journal chiffré que la CLI.
Lancement de la PWA
Pour démarrer l'interface Web, exécutez le script de lancement pour votre système d'exploitation :
Windows : passforge_pwa.bat
Linux/macOS : passforge_pwa.sh
[!IMPORTANT]
Durcissement de la sécurité (v34+) : La PWA utilise désormais un gestionnaire SecureStaticFiles qui bloque explicitement l'accès du navigateur aux fichiers sources Python, aux journaux et aux clés cryptographiques. L'accès à l'historique est protégé via une poignée de main de clé API interne. La logique frontend inclut également des wrappers défensifs pour les actifs CDN externes afin de garantir la fonctionnalité même si un CDN est bloqué.
[!TIP]
Disponibilité de la construction : Les fichiers PWA sont inclus dans les distributions Code source et ZIP/Tarball. La PWA n'est pas intégrée dans le binaire .exe mono-fichier.
Le lanceur installera automatiquement les dépendances nécessaires (fastapi, uvicorn), démarrera un serveur local à http://127.0.0.1:8093 et ouvrira votre navigateur.