
A production-ready, cryptographically secure password generator CLI with 17 generation modes, entropy transparency, and comprehensive customization options.
A production-ready, cryptographically secure password generator CLI with 17 generation modes, entropy transparency, and comprehensive customization options.



| Generator | Command | Description |
|---|---|---|
| Random | random, r | Cryptographically secure random character passwords |
| Passphrase | phrase, p | Word-based passphrases using EFF wordlist |
| Leetspeak | leet, l | Passphrases with character substitution (Aβ4, Eβ3, etc.) |
| PIN | pin | Numeric PINs of configurable length |
| Pronounceable | pronounce, pr | Easy-to-speak syllable-based passwords |
| UUID | uuid, u | RFC 4122/9562 UUIDs (v1, v4, v7) & Short (Base58) |
| Base64 | base64, b64 | URL-safe base64-encoded secrets |
| JWT Secret | jwt | High-entropy secrets for JWT signing (HS256/384/512) |
| WiFi Key | wifi | WPA2/WPA3 compatible keys (8-63 chars) |
| License Key | license | Software license keys (AXB format, e.g. 5x5) |
| Recovery Codes | recovery | 2FA backup codes (numeric or word-based) |
| OTP Code/Secret | otp | TOTP/HOTP codes & secrets with otpauth URI |
| Pattern | pattern | Visual grid-based pattern passwords |
| Themed Phrase | phrase (custom) | Passphrases from themed wordlists (animals, sci-fi, etc.) |
| NATO Phonetic | phonetic, ph | Convert text/passwords to NATO alphabet (Alpha-Bravo) |
| Analyze | analyze, check | Analyze strength of an existing password |
| History | history | View password generation history (defaults to 10 entries) |
.bat and .sh scripts with interactive menussecrets module for CSPRNG.env (recommended) or legacy .vault.key with strict 0600 file permissions--easy-read and --easy-say modes# Clone the repository
git clone https://github.com/krishnakanthb13/password_generator.git
cd password_generator
# Install dependencies (colorama, cryptography, pyperclip, etc.)
pip install -r requirements.txt
# Generate a 20-character random password
python main.py random -l 20
# Generate a 4-word passphrase
python main.py phrase -w 4 --capitalize
# Generate a leetspeak passphrase
python main.py leet -w 3 -s _
# Generate with entropy analysis
python main.py --show-entropy random -l 16
# Launch interactive mode
python main.py --interactive
# Use a preset profile (Strong)
python main.py --preset strong --show-entropy
# Basic 16-character password
python main.py random
# 24-character, letters only
python main.py random -l 24 --no-symbols --no-digits
# Easy to read (no 0/O, 1/l/I)
python main.py --easy-read random -l 20
# With minimum requirements
python main.py random -l 16 --min-upper 2 --min-digits 2 --min-symbols 1
# Balanced mode (mostly letters, fewer symbols)
python main.py random -l 24 --balanced
# Standard 4-word passphrase
python main.py phrase -w 4
# Capitalized with underscore separator
python main.py phrase -w 5 -s _ --capitalize
# Alternate case (High Entropy)
python main.py phrase -w 4 -s . --alternate
# Output: aPpLe.bAnAnA.cHeRrY.dAtE
# Uppercase with hyphen separator (High Entropy)
python main.py phrase -w 4 -s . --uppercase
# Output: APPLE-BANANA-CHERRY-DATE
# Leetspeak version (Smart 50% substitution)
python main.py leet -w 4 -s -
# Output: 4PPl3.8@N@[email protected]
# Themed Passphrase (using 'animals.txt')
python main.py phrase -w 4 --capitalize --wordlist data/wordlists/animals.txt
# Output: Tiger-Falcon-Shark-Wolf
# 5 segments of 5 characters
python main.py license --segments 5 --segment-length 5
# 4 segments of 8 characters
python main.py license --segments 4 --segment-length 8
# JWT secret for HS256
python main.py jwt --bits 256
# Base64 API key
python main.py base64 -b 32 --url-safe
# UUID token (v4 Random)
python main.py uuid --upper
# UUID v7 (Time-based, sortable)
python main.py uuid --ver 7
# Or shortcut
python main.py uuid --v7
# Short UUID (Base58 encoded, ~22 chars)
python main.py uuid --short
# Generate a v7 UUID using the shortcut
python main.py u --v7
# Generate 10 short v4 UUIDs
python main.py uuid --v4 --short -n 10
# NATO Phonetic Conversion
python main.py phonetic --text "PassForge"
# Output: Papa-Alpha-Sierra-Sierra-Foxtrot-Oscar-Romeo-Golf-Echo
# Analyze an existing password
python main.py analyze "p@ssword123"
# Log to history
python main.py --log random -l 16
# View last 10 history entries (default)
python main.py history
# View all history entries (decrypted on the fly)
python main.py history --all
# View history with redacted passwords
python main.py history --redact
# Export history (Redacted by default)
python main.py history --export backup.json
# Export history (Plaintext - requires caution)
python main.py history --export secrets.csv --no-redact
# JSON output for scripts
python main.py --json jwt --bits 256