Random Password Generator
Generate strong, deterministically-seeded passwords. Pick length, character classes, and bulk-count. All client-side — passwords never leave the browser.
Result
- Generated passwordst~dB{7[KwC,f8,o= rr{4WgIlate8fIq+ B+KNvPa}c=j:47Z@ iY4_LwUkVV8EF:~5 Q]3.[@9TRCzf2GIx dHj.^6[Tc>2s%zpn ()7M#b1AdP[X7W8m u6h4n0;iNJI3xRdY X:^1Hv+P3,Q/IZLb jy+Yr2vQ7kl%@30K
- Character pool89 unique chars (lower + upper + digit + symbol)
- Entropy per password103.6 bits
- NIST minimum (memorised secret)✓ ≥ 15 chars
Step-by-step
- Build pool from selected classes (size = 89).
- For each password: seed mulberry32 with (seed × 1000 + index), guarantee one char from each enabled class, fill to length, then Fisher-Yates shuffle.
- Entropy = length × log₂(pool) = 16 × 6.476 = 103.6 bits.
How to use this calculator
- Pick a length. 16 is a good default for site logins; 24+ for master passwords or encryption keys.
- Toggle the character classes — keep all four on for maximum entropy unless the target site rejects symbols.
- Optional: enable "avoid look-alikes" if the password will be transcribed by eye.
- Pick any one of the candidates and put it in your password manager. Discard the others.
- Change the seed (or any other input) to refresh.
About this calculator
A good password manager generates passwords for you; this tool exists for the moments when you do not have one handy. Pick a length, the character classes you want, and how many candidates to generate. Output is deterministic on the seed — increment to refresh — so the tool itself can be reviewed for correctness (no surprise weak passwords because of some hidden RNG state). 16 random characters from the full pool gives ~104 bits, well above the NIST threshold for everything short of cryptographic keys.
How it works — the formula
pool = union(enabled_classes); entropy = length · log₂(|pool|)
for each password: seed mulberry32, guarantee one char per enabled class, fill to length, Fisher–Yates shuffleBrute-force resistance is dominated by the size of the character pool and the password length. Mixing classes only matters insofar as it increases the pool; the most-impactful single setting is length. Forcing one character from each enabled class loses a trivial amount of entropy but prevents the awkward "the random one came out all lowercase" edge case.
Worked examples
- Inputs:
- length=16, lower/upper/digit/symbol=yes
- Output:
- ~104.3 bits (pool 95)
- Inputs:
- length=20, symbol=no
- Output:
- ~119.0 bits (pool 62)
- Inputs:
- length=24, avoidAmbiguous=yes, all classes
- Output:
- ~155 bits (pool 88)
Limitations
- Deterministic — for true CSPRNG randomness use your password manager. This generator is reproducible by design (for review and education).
- No real-world dictionary check; entropy is an upper bound.
- Symbol set is the common printable-ASCII subset; if a site rejects specific symbols you may need to retry with different inputs.
Store generated passwords in a manager — do not memorise from a screenshot. The seed is NOT a secret, but the chosen password IS.