Skip to main content

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

License: MIT Python 3.12+ Security: secrets

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-advanced disponible 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)

  1. Placement garanti : N chiffres + N caractÚres spéciaux + 1 minuscule + 1 majuscule sont placés en premier
  2. Remplissage : Les positions restantes sont remplies avec un mélange aléatoire de toutes les catégories
  3. 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/urandom sur Linux/macOS, CryptGenRandom sur 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

password_generator_advanced-1.0.2.tar.gz (18.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

password_generator_advanced-1.0.2-py3-none-any.whl (17.5 kB view details)

Uploaded Python 3

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

Hashes for password_generator_advanced-1.0.2.tar.gz
Algorithm Hash digest
SHA256 8b3eee0f9fbe87b39bb0e3a7825b65ba67a48c0d712f91b788b28c5ebbbb5901
MD5 ee5b14dacc30a3d6b62a3661317f75d2
BLAKE2b-256 9c1323adac0636661c070ab30ce362778d47c3f255b1935957ff2da3a98c03d3

See more details on using hashes here.

File details

Details for the file password_generator_advanced-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for password_generator_advanced-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 164f529850843a83eaaaf1658b11c7836ea4a5353dabe80831fe6b3bb6c58432
MD5 afc0ca880c6fd6770b79f0fbdc70d90a
BLAKE2b-256 172832fdda08e394fb59b409c197be3252edd7999c19438e3ab6c0ea7062a965

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page