Cryptographically Secure • Strength Indicator • 100% Local
This tool generates random passwords using your browser's cryptographically secure random number generator (crypto.getRandomValues) rather than Math.random(), which is not safe for security purposes. Character selection uses rejection sampling to avoid modulo bias — a subtle flaw where naively mapping random bytes onto a character set can make some characters statistically more likely than others, quietly weakening the password. When more than one character type is selected, the generator uses rejection sampling to guarantee the result contains at least one of each — regenerating the whole password if a type is missing, rather than forcing a character into a fixed position, which would make part of the password predictable.
The strength indicator is based on Shannon entropy: password length multiplied by the base-2 logarithm of the character pool size, giving an estimate in bits of how many guesses an attacker would need on average. Longer passwords and a larger character pool both increase entropy. All processing happens locally in your browser — no password is ever sent anywhere.