Password Generator
Create a strong random password of any length, drawing from your chosen character types.
How it works
The generator uses your browser's crypto.getRandomValues — a cryptographically secure random source, not a predictable Math.random() — to pick characters from the classes you enable (uppercase, lowercase, digits, symbols). It guarantees at least one character from every enabled class, then fills the rest of the length randomly and shuffles the whole password so the guaranteed characters aren't always in the same position.
Example
Enable all four character types at length 16 and Generate might produce something like qT8#mZr2!vD5nKw9 — a password strong enough for a bank or email account, with an instant Strong/Good/Weak rating based on its length and variety.
Frequently asked questions
Is this password sent anywhere?
No — generation happens entirely in your browser using the Web Crypto API; nothing is transmitted or logged.
What makes a password "Strong" here?
16+ characters drawn from 3 or more character classes is rated Strong; 12+ characters from 2+ classes is Good; anything shorter or less varied is Weak.
Why use crypto.getRandomValues instead of Math.random()?
Math.random() is not cryptographically secure and can be predictable; crypto.getRandomValues draws from the operating system's secure random source, which is what password generation requires.
Should I reuse a generated password across sites?
No — generate and use a unique password per site, ideally saved in a password manager, so a breach on one site can't compromise another.
Related tools
Generate one or many random v4 UUIDs using your browser's cryptographic randomness.
Hash GeneratorGenerate SHA-1, SHA-256 and SHA-512 hashes of any text, computed live in your browser.
Base64 Encoder / DecoderEncode text to Base64 or decode Base64 back to text — Unicode-safe, entirely in your browser.