Password generator
Create strong, unique passwords using your browser's native Web Crypto API. Adjust password length from 4 to 128 characters, toggle uppercase letters, lowercase letters, numbers, and symbols, avoid ambiguous characters, and generate passwords in bulk. Passwords are generated in memory and are never transmitted over the internet.
Generated using client-side Web Crypto API · Passwords are never sent over the network
8MM_(D5pYN8r)O8%
Strength: Very Strong105 bits of entropy
Password Settings
Bulk Password Generation
Generate a list of unique passwords at once
Example
16-character high-entropy password
Configuring a length of 16 with uppercase, lowercase, numbers, and symbols produces a high-entropy string like 'kP9#vX2$mQ8!bL4*' with 105 bits of entropy (Very Strong rating).
Related: JWT decoder, Hash generator, Timestamp converter, UUID generator
FAQ
- Are the passwords generated here cryptographically secure?
- Yes. Plaintools uses window.crypto.getRandomValues (Web Crypto API) rather than Math.random(), providing cryptographically strong pseudorandom values suitable for security credentials.
- Are generated passwords sent over the network or saved anywhere?
- No. Password generation occurs exclusively in your browser tab's JavaScript runtime. Zero network requests are made, and nothing is logged or persisted.
- What makes a password strong?
- Password strength depends on length and character entropy. A password with 16 or more characters drawn from uppercase, lowercase, digits, and symbols yields over 100 bits of entropy, making brute-force attacks computationally infeasible.
- Can I exclude ambiguous characters like 1, l, I, 0, and O?
- Yes. Checking the 'Avoid ambiguous characters' option removes visually similar glyphs (such as lowercase l, uppercase I, the number 1, uppercase O, and zero 0) to avoid transcription mistakes.
- Can I generate multiple passwords at once?
- Yes. Use the Bulk Password Generation panel to produce 5, 10, 20, or custom batches of unique passwords with one-click copy.
- How do I generate a secure password programmatically?
- Define character pools (uppercase, lowercase, numbers, symbols). Assemble allowed pool. Allocate a Uint32Array, populate with crypto.getRandomValues(array), map each 32-bit int to a pool index using rejection sampling to eliminate modulo bias, guarantee one char per selected set, and shuffle with Fisher-Yates.