How the password generator works
A strong password is simply a long string of characters that an attacker cannot predict. This tool builds one entirely in your browser: you pick the length and which character types to include, and it draws each character at random from that pool.
The randomness comes from the Web Crypto API (crypto.getRandomValues), the browser’s cryptographically secure random number generator. This is the same source used to generate real encryption keys. It deliberately does not use Math.random(), which is fast but predictable and unsuitable for anything security related.
The character pool
You choose any combination of four sets:
- Lowercase
a-z(26 characters) - Uppercase
A-Z(26 characters) - Numbers
0-9(10 characters) - Symbols
!@#$%^&*()-_=+[]{};:,.?/(24 characters)
With all four enabled the pool is 86 characters. Every position in the password is an independent random pick from that pool, and the generator guarantees at least one character from each set you selected (as long as the length allows), so the result always satisfies the rules you chose.
Excluding look-alikes
Tick Exclude look-alikes to remove the six characters that are easiest to misread: I, l, 1, O, 0 and o. This is useful for passwords you have to read off a screen and type by hand, for example a Wi-Fi key or a device setup code. It shrinks the pool slightly, which the strength meter accounts for.
How strength is measured
The strength meter shows entropy in bits, calculated as:
bits = length × log2(pool size)
Each bit of entropy doubles the number of guesses an attacker would need. A 16-character password drawn from an 86-character pool has about 16 × log2(86) ≈ 103 bits, which is comfortably in the “very strong” range. The rough scale used here:
- Under 40 bits: Weak
- 40 to 60 bits: Fair
- 60 to 80 bits: Strong
- 80 to 120 bits: Very strong
- 120 bits and up: Excellent
The key takeaway: length beats complexity. Adding one more character multiplies the possibilities by the full pool size, while swapping one letter for a symbol barely moves the needle. If a site rejects symbols, just make the password longer.
Privacy
Everything happens on your device. The password is generated by JavaScript running in your tab, never sent to a server, never logged and never stored. Refreshing the page or closing the tab discards it completely.
Good password habits
- Use a unique password for every account so one breach cannot cascade.
- Store them in a reputable password manager rather than reusing or memorizing.
- Prefer length (16+ characters) over hard-to-remember complexity.
- Turn on two-factor authentication wherever it is offered, as a second layer beyond the password itself.
This tool generates passwords for your own use. It is a convenience utility, not professional security advice.