PassCheck

Passwords, with the maths shown

Generated from your browser's cryptographic random source. The entropy figure is computed from the character set you actually chose.

Network measuring… Source crypto.getRandomValues

Check it yourself: open DevTools → Network and use this page. Nothing you generate or type produces a request, because the page makes none.

Why the entropy number is the whole point

Most generators show you a coloured bar. A bar cannot tell you whether twelve characters is enough, or what you give up by unticking symbols, and it is usually computed from a rule of thumb rather than from the generator's own settings. The honest measure is entropy: the number of possibilities an attacker has to work through, expressed in bits so that each extra bit means twice as many.

Here the figure is derived from the character set in use and the length you asked for, and it changes the instant you change either. Untick symbols and watch it fall; add two characters and watch it recover. That relationship is the actual thing worth understanding about passwords, and a bar hides it.

The uncomfortable part: your password is only half of it

Entropy tells you how hard the password is to guess. How long guessing takes also depends on how the site you are using stored it — and you have no way to know. A 60-bit password behind a properly slow hash like bcrypt or Argon2 is out of reach; the same password behind one round of an old fast hash can fall in hours on rented hardware. This is why length beyond the point of comfort is still worth having: it is the only variable on your side of the fence.

The single highest-value habit here is not a stronger password, it is a different password per site. Reuse is what turns one company's breach into your problem, and no amount of entropy protects against it.

Rejection sampling, and why it matters here

Mapping a random 32-bit number onto a 70-character set with a simple remainder operation very slightly favours the first few characters of the set, because 2³² does not divide evenly by 70. The bias is small, but it means the real entropy is fractionally below the number displayed — and a page whose only product is a number should not print one that is not true. This generator discards and redraws any value that would land in the uneven tail.

Questions

Where does the randomness come from?
crypto.getRandomValues, the browser's cryptographic random number generator, which draws from the operating system's entropy pool. It is not Math.random — that is a fast non-cryptographic generator whose future output can be predicted from a handful of previous values, which makes it catastrophic for passwords and indistinguishable from fine to look at.
What does the bits figure actually mean?
It is the base-2 logarithm of the number of possible passwords your settings can produce — so each extra bit doubles the search space. A 20-character password from a 70-character set is about 122 bits, meaning roughly 2^122 possibilities. The figure is computed from the character set actually in use, so unticking symbols or excluding lookalike characters lowers it immediately rather than leaving a stale number on screen.
How many bits is enough?
For anything protected by a password manager, 80 bits and above is comfortably beyond brute force with any foreseeable hardware. Below about 50 bits is within reach of a determined attacker with fast hardware and a fast hash. The awkward truth is that the hash matters as much as the password: 60 bits behind bcrypt is far safer than 80 bits behind a single round of SHA-1, and you have no control over which one a website chose.
Why exclude lookalike characters?
Because if you will ever read the password aloud, copy it off a screen, or type it from a note, then I and l and 1, and O and 0, are a genuine source of failed logins. Excluding them costs a little entropy — visible in the bits figure — and you can buy it straight back by adding one or two characters of length.
Is the password sent anywhere or logged?
No. There is no request of any kind after the page loads, no analytics script, and nothing written to storage. The generated password exists in the page you are looking at and nowhere else. Open the Network tab and generate a hundred passwords — you will see no traffic at all.
Should I use this or my password manager's generator?
Honestly, your password manager's, because it will save the result in the same action and the risk in this whole process is not the generator, it is you having to remember or transcribe the output. This page is for when you do not have one to hand, or want to see the entropy maths made explicit.