Password Generator
A password generator that runs entirely in this browser tab. Pick a length, toggle the character classes you want included, and copy the result. The characters come from your device's cryptographic random source, never a server, and the page keeps no history of what you generated. The entropy estimate is real: log₂ of your pool size, multiplied by length, not a green bar that tells you nothing.
Use this without the search next time. Prathom Workbench puts Prathom's tools in your toolbar.
Add to Chrome — freeWhat it does
- Cryptographic random via crypto.getRandomValues
- Lowercase, uppercase, digits, and symbols toggles
- Look-alike character exclusion (Il1O0)
- Real Shannon entropy estimate in bits
- Show-or-hide toggle while you copy
How to use Password Generator
- 1
Choose a length
Drag the length slider. Sixteen characters is a sensible default for everyday accounts; for passwords protecting email or financial access, move to twenty or more. Length matters more than symbol variety, because each additional character multiplies the search space rather than adding to it.
- 2
Pick the character classes
Toggle lowercase, uppercase, digits, and symbols. Turning symbols off is occasionally necessary when a destination refuses them, but the entropy estimate drops visibly when you do. The skip-look-alikes option removes characters that are easy to misread when handwritten, such as capital I and lowercase l, or capital O and the digit zero.
- 3
Generate and copy
Press Generate to produce a new value, or Copy password to put the current one on the clipboard. The Show toggle reveals the password while you read it back, and hides it again before you take a screenshot or share the screen.
- 4
Read the entropy estimate
The entropy figure is log₂ of the active pool size multiplied by length. Thirty-six bits is a few days of brute force on cheap hardware; sixty bits is out of reach of consumer GPUs; one hundred and twenty-eight bits iscryptographically meaningless to attempt. Use it to compare configurations, not as a guarantee of safety.
How it works
The generator builds a pool of candidate characters from the four classes you enable (lowercase, uppercase, digits, symbols). For each position in the requested length, it asks the browser's cryptographic random source for one random value, scales that value uniformly across the pool, and picks the character at that index. The result is then written into the input on the page, never transmitted, and replaced by the next click.
The randomness source is the same crypto.getRandomValues your browser uses
for TLS key derivation. It is a CSPRNG — a cryptographically secure
pseudorandom number generator — and the output is uniform across the active
pool, which means no character is more likely than another unless you reduce
the pool by excluding look-alikes.
The entropy figure is log₂ of the active pool size multiplied by the length. Sixteen characters from a 94-symbol pool is log₂(94) × 16 ≈ 105 bits, which matches the displayed number. This is the number a worst-case adversary would need to guess; in practice their hardware is slower than the theoretical maximum, so the real cost is several orders of magnitude higher.
Why entropy beats "strength bars"
Most password meters assign points for class mixing and subtract for common patterns, then translate the result into a color. The color communicates a feeling, not a number, and two passwords with the same color can differ by many orders of magnitude in their actual cost to break. This tool shows the bits explicitly because comparing two numbers is something a calculator can do and comparing two colors is not.
The "time to crack" labels map the bit count onto practical hardware. Anything below twenty-eight bits falls to a guessing script in seconds. Thirty-six bits is out of reach for someone with a botnet of consumer machines for several weeks. Sixty bits is the threshold past which consumer GPUs need years. Anything past one hundred and twenty-eight is the wrong shape for any physical machine to attempt, today or with foreseeable hardware.
What this generator does not do
It does not store the password, write it to disk, or send it to a server. It does not synchronize across devices. It does not hash or derive the password into a different form. It does not rate-limit on the page in a way that would make the result weaker than the request.
For long-term storage of what you generate, the right companion is a local password manager with encrypted storage. A generated value is only useful if you can still reach it — and a browser tab, by design, is not where secrets live.
Examples
A typical sixteen-character password
96 bits of entropy from a 94-character pool — comfortably resistant to consumer brute force and well above the 80-bit threshold most benchmarks call the practical ceiling for offline guessing.
A safer long passphrase-style password
192 bits from a 94-character pool. The marginal cost of typing it once is offset by the fact that no realistic adversary can search the resulting keyspace, and a password manager stores it without you ever needing to type it again.
Frequently asked questions
Is the password really generated in my browser?
Yes. The generator calls `crypto.getRandomValues` directly inside this page, which is the same cryptographic random source your browser uses to negotiate TLS connections. There is no request to a server, no shared state, and the generated value is never written anywhere except the input field on your screen. You can verify this in the Network tab of your browser's developer tools: pressing Generate produces no outbound request. The privacy advantage is real, but more importantly the technical advantage is that no other computer ever holds the value.
Why does the entropy estimate matter more than word "strong"?
A label that says "strong" tells you how a marketing team feels about a password. A number expressed in bits tells you, in a way you can compare, how many guesses a worst-case adversary would need. Sixty bits is roughly a trillion guesses; one hundred and twenty-eight is roughly three hundred and forty undecillion. Real entropy is `log₂(pool size) × length`, which is the formula this tool shows you, so two configurations can be compared honestly instead of one being "very strong" and the other "extremely strong" with no meaningful difference visible.
Should I always include symbols?
Not always. Sites with broken input handling can reject symbols, and the entropy loss from removing them is small if you extend the length by even a few characters. Twelve random lowercase letters carry about fifty-six bits of entropy; twelve with all four classes carry about seventy-eight. Eight with all four classes is weaker than sixteen with only lowercase and digits, because length multiplies the search space while classes only add to it. Use symbols when the destination accepts them, and extend length when it does not.
Can this generator be trusted for sensitive accounts?
For “stronger than the password you would invent” — yes, comfortably. For purposes subject to compliance regimes (banking, healthcare, government), the rule to follow is the one your policy documents: many require a hardware-backed secret, a password manager with a known seed, or both. The browser's `crypto.getRandomValues` is a CSPRNG but the output lives only in this page, so it is appropriate for personal use and not for an organizational master secret.