Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ” PassForge

A cryptographically secure password & passphrase generator with a built-in strength meter.

PassForge uses Python's secrets module (a CSPRNG) to forge strong credentials, then tells you exactly how strong they are β€” entropy in bits, a strength rating, and an estimated brute-force time.

  PassForge Β· cryptographically secure

  k?=9U[l;N;WOwg]S
  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘  Strong
  entropy: 103 bits Β· est. crack time: 1.4e+07 millennia

✨ Features

  • CSPRNG-backed β€” uses secrets, not random
  • Guaranteed character mix β€” at least one of each enabled set, then shuffled
  • Memorable passphrases β€” diceware-style word combinations (--passphrase)
  • Strength analysis β€” entropy, rating, and offline crack-time estimate
  • Strength checker β€” rate an existing password with --check
  • Flexible β€” control length, count, and which character classes to include
  • Ambiguity filter β€” drop look-alike characters (Il1O0o) with --no-ambiguous
  • Zero dependencies β€” pure Python standard library, works on 3.7+

πŸš€ Usage

# One strong 16-char password (default)
python3 passforge.py

# Five 24-char passwords
python3 passforge.py -l 24 -n 5

# Letters + digits only (no symbols)
python3 passforge.py --no-symbols

# A memorable 5-word passphrase
python3 passforge.py --passphrase -w 5

# Rate an existing password
python3 passforge.py --check "hunter2"

Options

Flag Description
-l, --length Password length (default 16)
-n, --count How many to generate
--no-upper / --no-digits / --no-symbols Drop a character class
--no-ambiguous Exclude look-alike characters
--passphrase Generate word-based passphrases
-w, --words Words per passphrase (default 4)
-s, --separator Passphrase separator (default -)
--check PASSWORD Rate the strength of an existing password

πŸ“ How entropy is estimated

For random passwords: entropy = length Γ— logβ‚‚(pool_size). For passphrases: entropy = words Γ— logβ‚‚(vocabulary). Crack time assumes an aggressive offline attacker at ~10¹⁰ guesses/second and reports expected (half-keyspace) effort. These are conservative estimates to help you reason about strength, not guarantees.

License

MIT

About

A cryptographically secure password & passphrase generator with live entropy and brute-force crack-time estimates. Pure Python, zero deps.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages