A client-side password and passphrase generator with theme toggle, strength meter, and copy support.
password-generator/
├── index.html # App markup
├── style.css # Styling and themes
├── script.js # Generation logic and UI behavior
├── README.md # Project documentation
└── images/
└── Password-generator.png # README screenshot
- Quick start: open
index.htmlin your browser. - Local server option:
- From
password-generator/, run:python3 -m http.server 8000
- Open
http://localhost:8000.
- From
- A modern web browser
- Optional: Python 3 (only needed for local server mode)
- Google Chrome (recent versions)
- Microsoft Edge (recent versions)
- Mozilla Firefox (recent versions)
- Safari (recent versions)
- Choose a mode: Password or Passphrase.
- Set the length (or word count for passphrases).
- Toggle character types and optional exclude-similar.
- Click Generate Password.
- Click Copy Password (or press Ctrl/Cmd + C).
- Generates passwords locally in the browser.
- Uses
crypto.getRandomValuesfor cryptographically secure randomness. - Ensures at least one character from each selected type when applicable.
- Estimates strength and entropy based on the generated output.
- Stores theme preference with localStorage.
- Custom length (4-50) with guaranteed inclusion of selected character types
- Uppercase, lowercase, numbers, symbols toggles
- Exclude similar characters (O/0, l/1, I)
- Passphrase mode (word list, 2–10 words, separator: random,
-,.,_, space) - Strength indicator (heuristic)
- Entropy estimate (bits, based on unique characters in the generated password)
- Copy to clipboard with cooldown and toast feedback
- Light/dark theme toggle
- Keyboard shortcuts (Enter = generate, Ctrl/Cmd + C = copy)
- Cryptographically secure randomness via
crypto.getRandomValues - Remembers theme preference with localStorage
- Auto-generates a password on page load
- Strength is an estimate and not a guarantee of real-world resistance.
- Entropy values are approximate and based on selected/generated character sets.
- Browser clipboard permissions may affect copy behavior.
- Passwords and passphrases are generated locally in your browser.
- No backend service is required for generation.
- Theme preference is stored in localStorage.
- Add customizable passphrase word lists.
- Add export/import for generator presets.
- Improve strength feedback explanations.
- Add optional strict policy templates (e.g., enterprise defaults).
- Passwords are generated locally in the browser.
- If you select multiple character types, length must be at least the number of selected types.
