Secure command-line password generator with strict cryptographic constraints. Interactive menu and CLI modes. Passphrase generation. Entropy evaluation. Cross-platform clipboard support.
Project description
Password-Generator-Advanced
đ«đ· Version française | đșđž English version
Générateur de mots de passe sécurisés en ligne de commande avec des contraintes cryptographiques strictes. Chaque mot de passe généré contient obligatoirement des lettres minuscules, majuscules, chiffres et caractÚres spéciaux, avec des minimums configurables.
Installation Rapide
Password-Generator-Advanced est disponible sur PyPI ! N'importe qui peut l'installer directement avec pip :
pip install Password-Generator-Advanced
Une fois installé, lancez simplement :
password-generator-advanced
Le package est compatible avec Python 3.12+ et fonctionne sur Linux, macOS et Windows.
Que fait cette commande ?
- Télécharge automatiquement la derniÚre version stable depuis PyPI
- Installe le package dans votre environnement Python
- Rend la commande
password-generator-advanceddisponible globalement
Mise Ă jour vers la derniĂšre version :
pip install --upgrade Password-Generator-Advanced
Installation dans un environnement virtuel (recommandé) :
# Créer un environnement virtuel
python -m venv venv
# Activer l'environnement
# Sur Linux/macOS :
source venv/bin/activate
# Sur Windows :
venv\Scripts\activate
# Installer le package
pip install Password-Generator-Advanced
Alternative : Installation depuis les sources
Si vous souhaitez contribuer au projet ou utiliser la version de développement :
git clone https://github.com/valorisa/Password-Generator-Advanced.git
cd Password-Generator-Advanced
poetry install
Prérequis pour l'installation depuis les sources :
- Python 3.12 ou supérieur
- Poetry (gestionnaire de dépendances)
Fonctionnalités
- Génération de mots de passe avec contraintes strictes (configurable)
- Génération de passphrases (style Diceware, 2048 mots, 11 bits d'entropie par mot)
- Ăvaluation de la force d'un mot de passe ou passphrase existant
- Copie dans le presse-papier (Windows, macOS, Linux)
- Mode interactif (menu) et mode CLI (arguments en ligne de commande)
Contraintes par défaut
| Contrainte | Minimum garanti |
|---|---|
| Chiffres (0-9) | 9 |
CaractÚres spéciaux (!@#$%^&*...) |
9 |
| Lettres minuscules (a-z) | 1 |
| Lettres majuscules (A-Z) | 1 |
| Longueur minimale totale | 20 caractĂšres |
Les contraintes de chiffres et caractÚres spéciaux sont paramétrables via --min-digits et --min-special.
Le module Python secrets est utilisĂ© pour la gĂ©nĂ©ration (CSPRNG â Cryptographically Secure Pseudo-Random Number Generator).
Utilisation
Mode interactif
Si vous avez installé via pip depuis PyPI :
password-generator-advanced
Si vous utilisez l'installation depuis les sources (avec Poetry) :
python -m password_generator_advanced
Note : Les deux commandes sont Ă©quivalentes et lancent le mĂȘme programme.
Le menu interactif s'affiche :
==================================================
GĂNĂRATEUR DE MOTS DE PASSE SĂCURISĂS
==================================================
Contraintes appliquées :
- Minimum 9 chiffres
- Minimum 9 caractÚres spéciaux
- Au moins 1 lettre minuscule
- Au moins 1 lettre majuscule
- Longueur minimale : 20 caractĂšres
--------------------------------------------------
1 - Générer un mot de passe
2 - Générer plusieurs mots de passe
3 - Générer une passphrase
4 - Ăvaluer un mot de passe / passphrase
5 - Quitter
--------------------------------------------------
Mode CLI
# Générer un mot de passe (longueur 30)
python -m password_generator_advanced --length 30
# Générer 5 mots de passe
python -m password_generator_advanced --length 25 --count 5
# Contraintes personnalisées
python -m password_generator_advanced --length 20 --min-digits 3 --min-special 5
# Générer une passphrase (6 mots par défaut)
python -m password_generator_advanced --passphrase
# Passphrase avec options
python -m password_generator_advanced --passphrase --words 8 --separator "."
# Ăvaluer un mot de passe existant
python -m password_generator_advanced --evaluate "mon-super-mot-de-passe!"
# Copier le résultat dans le presse-papier
python -m password_generator_advanced --length 25 --copy
Options CLI complĂštes
| Option | Court | Description |
|---|---|---|
--length |
-l |
Longueur du mot de passe |
--min-digits |
Nombre minimum de chiffres (défaut: 9) | |
--min-special |
Nombre minimum de caractÚres spéciaux (défaut: 9) | |
--count |
-n |
Nombre de mots de passe à générer |
--passphrase |
-p |
Générer une passphrase |
--words |
-w |
Nombre de mots pour la passphrase (défaut: 6) |
--separator |
Séparateur pour la passphrase (défaut: -) |
|
--evaluate |
-e |
Ăvaluer l'entropie thĂ©orique d'un mot de passe |
--copy |
-c |
Copier dans le presse-papier |
Ăvaluation de mot de passe
L'outil peut évaluer l'entropie théorique maximale d'un mot de passe ou passphrase existant :
Entropie théorique maximale :
Longueur : 28 caractĂšres
Entropie max. : 164.0 bits
Niveau : TrĂšs fort
Jeu de caractĂšres: 58 symboles possibles
Catégories détectées :
Minuscules : â
Majuscules : â
Chiffres : â
SpĂ©ciaux : â
â Ce calcul suppose un choix alĂ©atoire par caractĂšre.
Un mot de passe basé sur des mots du dictionnaire ou des
patterns prévisibles aura une entropie réelle inférieure.
Seuils (alignés sur les recommandations ANSSI) :
| Entropie | Niveau |
|---|---|
| < 48 bits | TrĂšs faible |
| 48-63 bits | Faible |
| 64-79 bits | Moyen |
| 80-127 bits | Fort |
| â„ 128 bits | TrĂšs fort |
Architecture du projet
Password-Generator-Advanced/
âââ src/
â âââ password_generator_advanced/
â âââ __init__.py # Version du package
â âââ __main__.py # Point d'entrĂ©e python -m
â âââ main.py # Menu interactif + CLI argparse
â âââ generator.py # Algorithme de gĂ©nĂ©ration + Ă©valuation
â âââ wordlist.py # Liste de 2048 mots pour passphrases
â âââ clipboard.py # Copie presse-papier cross-platform
âââ tests/
â âââ test_generator.py # 18 tests
âââ pyproject.toml # Configuration Poetry
âââ LICENSE # MIT
âââ SECURITY.md
âââ CONTRIBUTING.md
âââ CODE_OF_CONDUCT.md
Algorithme de génération (generator.py)
- Placement garanti : N chiffres + N caractÚres spéciaux + 1 minuscule + 1 majuscule sont placés en premier
- Remplissage : Les positions restantes sont remplies avec un mélange aléatoire de toutes les catégories
- Mélange final : L'ensemble est mélangé via
secrets.SystemRandom().shuffle()pour éliminer tout pattern positionnel prévisible
Génération de passphrases
Sélection aléatoire de mots depuis une liste de 2048 mots (11 bits d'entropie par mot). Une passphrase de 6 mots offre ~66 bits d'entropie.
Sécurité
- Module
secrets: Utilise le gĂ©nĂ©rateur alĂ©atoire cryptographiquement sĂ©curisĂ© du systĂšme d'exploitation (/dev/urandomsur Linux/macOS,CryptGenRandomsur Windows) - Aucune dĂ©pendance externe : Uniquement la bibliothĂšque standard Python â pas de surface d'attaque tierce
- Pas de stockage : Les mots de passe générés ne sont jamais écrits sur disque ni envoyés sur le réseau
Pour signaler une vulnérabilité, consultez SECURITY.md.
Développement
# Lancer les tests
poetry run pytest tests/ -v
# Vérifier le style
poetry run ruff check .
# Corriger automatiquement
poetry run ruff check . --fix
Contribution
Les contributions sont bienvenues. Consultez CONTRIBUTING.md pour le processus détaillé.
Ce projet respecte le Contributor Covenant 2.1.
Licence
MIT - Utilisation libre, commerciale et modification autorisées.
Auteur : valorisa
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file password_generator_advanced-1.0.2.tar.gz.
File metadata
- Download URL: password_generator_advanced-1.0.2.tar.gz
- Upload date:
- Size: 18.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.4.1 CPython/3.12.13 Linux/6.17.0-1013-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b3eee0f9fbe87b39bb0e3a7825b65ba67a48c0d712f91b788b28c5ebbbb5901
|
|
| MD5 |
ee5b14dacc30a3d6b62a3661317f75d2
|
|
| BLAKE2b-256 |
9c1323adac0636661c070ab30ce362778d47c3f255b1935957ff2da3a98c03d3
|
File details
Details for the file password_generator_advanced-1.0.2-py3-none-any.whl.
File metadata
- Download URL: password_generator_advanced-1.0.2-py3-none-any.whl
- Upload date:
- Size: 17.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.4.1 CPython/3.12.13 Linux/6.17.0-1013-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
164f529850843a83eaaaf1658b11c7836ea4a5353dabe80831fe6b3bb6c58432
|
|
| MD5 |
afc0ca880c6fd6770b79f0fbdc70d90a
|
|
| BLAKE2b-256 |
172832fdda08e394fb59b409c197be3252edd7999c19438e3ab6c0ea7062a965
|