Password Generator
Generate cryptographically secure random passwords using crypto.getRandomValues() — customizable length, character sets, and entropy calculation.
Last updated: March 25, 2026
Used 43K+ timesWhat users say
“I generate service account passwords here weekly. The entropy indicator and no-server-send policy make this the only online generator I trust for work use.”
Find this tool useful? Support the project to keep it free!
Buy me a coffeeWhat is Password Generator?
A strong password is your first-line defense against unauthorized account access — but human-chosen passwords are predictably weak. Studies by security researchers consistently find that users choose passwords from a small vocabulary of dictionary words, names, and common patterns, making them vulnerable to dictionary attacks and credential stuffing. Random password generators solve this by creating passwords with maximum entropy relative to their length.
This generator uses `crypto.getRandomValues()` — the Web Cryptography API's cryptographically secure pseudorandom number generator (CSPRNG) — to select characters. Unlike Math.random() (which uses a predictable mathematical algorithm), crypto.getRandomValues() draws from the operating system's entropy pool (hardware interrupts, thermal noise, disk timing) and is approved for cryptographic use by NIST. Generated passwords are never transmitted to any server — the entire process runs in your browser's JavaScript memory.
How to Use Password Generator
Set the password length using the slider (16+ characters recommended for most accounts, 20+ for high-security)
Toggle the character sets you want to include: Uppercase (A-Z), Lowercase (a-z), Numbers (0-9), Symbols (!@#$%^&*)
Click "Generate Password" to create a new random password — the entropy meter shows how strong it is in bits
Click "Copy" to copy the password to your clipboard (avoid typing it manually to prevent keyboard logging)
Click "Generate" again for a different password — each generation is independent and equally random
Common Use Cases
- Creating a unique, strong password for a new account — never reuse passwords across services
- Generating a temporary password for a team member account that they will reset after first login
- Creating database credentials: randomly generated POSTGRES_PASSWORD for Docker Compose files
- Generating API keys and secret values for .env files when a service doesn't generate them automatically
- Creating a strong master password for a password manager (KeePass, Bitwarden local vault)
- Generating encryption passphrase for a GPG key or VeraCrypt volume
- Creating a Wi-Fi passphrase for a router — long and random prevents neighbor brute force
- Generating a one-time password (OTP) for a paper-based emergency access code
Example Input and Output
Generating passwords for different security requirements:
Config 1: Length=16, Uppercase+Lowercase+Numbers
Config 2: Length=20, All character types (+ Symbols)
Config 3: Length=32, All character types (high security)Config 1 (length 16, 62-char alphabet):
→ "Kp7MtXq2RnLb9YwZ"
→ Entropy: ~95 bits (very strong)
→ Crack time at 1B guesses/sec: years
Config 2 (length 20, 94-char alphabet):
→ "f#3Kx!mQ0Ln$P7vR@9Wz"
→ Entropy: ~130 bits (excellent)
→ Crack time: effectively uncrackable
Config 3 (length 32, all chars):
→ "v8!qX@2mK#Tp$9Ln^0Rj%5Ws&7Yb*4Fd"
→ Entropy: ~210 bits (cryptographic grade)Complete Privacy
Passwords are generated using crypto.getRandomValues() purely in your browser. No generated password is transmitted to our servers at any point. You can disable your internet connection after loading this page and the generator will continue to work identically.
Use a Password Manager
Generated passwords are only valuable if you can remember or retrieve them. Store every generated password in a password manager: Bitwarden (free, open-source), 1Password, Dashlane, or KeePass (local). A password manager allows unique 20+ character random passwords on every site without memorization — this is the single most effective password security improvement for most people.
Browser Clipboard Security
The browser clipboard is accessible to any JavaScript running on other tabs in some browser configurations. After copying a password, paste it into your password manager immediately, then clear the clipboard with a benign copy (copy any other text). On macOS: clipboard managers like Raycast automatically hide password-like strings. On Windows: Windows Clipboard History (Win+V) may log copied passwords — disable "Clipboard History" in Settings → System → Clipboard for security-sensitive workflows.
Frequently Asked Questions
What is password entropy and why does it matter?
Why is crypto.getRandomValues() more secure than Math.random()?
How long should a password be?
Should I use a passphrase instead of a random password?
Should I include symbols? Some sites block them.
Is the generated password visible to this website?
How This Tool Works
A character pool string is assembled from the selected character sets (uppercase A-Z + lowercase a-z + digits 0-9 + symbols). A Uint32Array of the requested password length is filled by crypto.getRandomValues(). Each random value is mapped to a character index using the modulo operation: chars[randomValue % chars.length]. This uniform sampling approach with crypto.getRandomValues() produces a statistically uniform distribution across the character pool with cryptographic security guarantees.
Technical Stack
Security and Auth Workflow
Generate safer credentials, inspect tokens, verify signatures, and compare hash outputs from the same family.