Password Generator with an Entropy Meter

Strong passwords built with your browser's cryptographic random generator (crypto.getRandomValues). Nothing is transmitted or stored — click a password to copy it.

{{strength.label}} {{entropy.toFixed(0)}} bits of entropy · {{charsetSize}} char pool
Options
Basic
{{length}}
A–Z
a–z
0–9
!@#$%…
Advanced
i I l L 1 o O 0
each char once
Characters to include
Characters to exclude
No characters available — adjust the sets or exclusions. {{warnNote}}
Batch {{batch.length}}
{{i+1}} {{p}}

Random passwords resist memorizing by design — a password manager is still the right home for them. But if you must learn one, these three views of the current password help. For your eyes only; nothing here is stored.

1 · Chunk it
{{c}}

Small groups are far easier to hold in short-term memory than one long run.

2 · Say it aloud (phonetic)
{{p.ch===' '?'␣':p.ch}} {{p.say}}
3 · Build a story

One vivid word per character — string them into a silly sentence and picture it.

About this tool

The random portion is drawn with crypto.getRandomValues (a CSPRNG), using rejection sampling to avoid modulo bias. The meter sums each position's own bit count rather than a flat log2(pool size) × length: "no duplicate characters" draws without replacement, so each position after the first has one fewer choice than the last, and "begins with" constrains position 0 to whichever category you picked instead of the whole pool — both are counted exactly, not estimated. The one part that stays an upper-bound estimate is "require one of each selected category": computing that exactly is an inclusion-exclusion problem over which categories are on, so a password using it may be very slightly weaker than the number shown.

Use a password manager rather than memorizing passwords. Aim for at least 12 characters and 75+ bits of entropy for important accounts. This generator runs entirely offline in your browser and never sends, logs, or stores what it creates.