Generate strong, random passwords with customizable length and character sets. Free, private, 100% browser-based.
Generate a strong random password in your browser with crypto.getRandomValues() — the browser's cryptographically secure random generator. Nothing is sent to a server, nothing is stored, and you can tune length and character sets to what your account actually allows.
For years the advice was "use symbols". The current standard says otherwise: NIST SP 800-63B asks for at least 15 characters for user-chosen passwords, drops the forced-complexity rules, and explicitly says not to make users change passwords on a schedule — rotation only after a suspected compromise.
Length is what makes guessing expensive. A 16-character random password from the full character set is not a slightly stronger 8-character one; it is billions of times harder.
Entropy measures how many possible passwords an attacker has to consider: E = L × log₂(R), where L is the length and R the number of characters your chosen set draws from.
Practical values: 12 lowercase letters ≈ 56 bits, 14 letters and digits ≈ 83 bits, 16 characters from the full set ≈ 105 bits. Below roughly 72 bits an offline attack on a stolen hash is realistic; a strong password should clear 75 bits comfortably.
This is also why predictable substitutions fail: P@ssw0rd! is 11 characters, but it sits in the dictionary an attacker tries first — its effective entropy is far below what its length suggests.
Each character has to be drawn independently from a cryptographically secure source. Generators that build "memorable" passwords — pronounceable words, keyboard patterns, a word plus digits — deliberately shrink the search space, and some password managers still default to that behaviour.
Avoid patterns you can see: repeated characters, sequences, a word with the year attached, or the same password with a different suffix on every site.
A generated password only helps if it is unique per account — that way a leak on one site cannot unlock anything else. Store it in a password manager, which also generates and fills them for you, and turn on two-factor authentication where it is offered.
If you must remember one by hand, a passphrase of several unrelated random words beats a short complex string: it is longer, easier to type and still resistant to guessing.
Every password is produced with crypto.getRandomValues() in your browser — never Math.random(), which is predictable. No result is sent anywhere, no history is kept and no account is needed.
The strength meter is a simple estimate: length multiplied by the number of character sets you enabled. Treat it as a rough guide to entropy, not a guaranteed crack time.
Use a unique password for every account. A disposable inbox keeps marketing mail out of your real inbox, but it does not replace a password manager or two-factor authentication.