Core sets
Scripts & symbols (mixable)
Rules
Output
Generated
Paste-safety preview — first result, escaped per context
Green in the table means the raw value needs no escaping in that context — safe to paste as-is. Anything else shows the form you should actually write.
Alphabet in use — every glyph that can appear
SHA-256 of each result
How this works
Every random value comes from crypto.getRandomValues, the browser's CSPRNG. Indexes into an alphabet use rejection sampling — a 32-bit draw is discarded and redrawn whenever it falls in the biased tail — so each glyph is exactly equally likely. Math.random is never called.
Entropy is reported as length × log₂(alphabet). Turning on require one from every set or the anti-pattern rules shrinks the space slightly; the figure shown is then a ceiling, not a promise. No character used twice is computed exactly as log₂ of the falling factorial.
Time-to-crack assumes the attacker knows your exact settings and searches half the space. It says nothing about phishing, keyloggers, or password reuse — the ways passwords actually get taken.
Nothing here is transmitted, logged, or written to storage. Refreshing the page destroys everything. Your clipboard, however, is not cleared for you.