Password Generator
Free web tool: Password Generator
* Estimated at 10B guesses/sec (high-end GPU cluster)
About Password Generator
The Password Generator creates cryptographically secure random passwords using the browser's native crypto.getRandomValues() API. It features a visual password strength meter that displays entropy in bits, estimated crack time against GPU cluster attacks, and a color-coded strength bar (red through green). Choose from enterprise security policy presets — NIST SP 800-63B, Korean Financial (KISA), Corporate/Enterprise — or configure custom rules. Generate 1 to 50 passwords at once with quick batch buttons.
Strong, unique passwords are the first line of defense against unauthorized access. Reusing passwords or choosing predictable ones makes accounts vulnerable to credential stuffing, dictionary attacks, and brute-force attacks. This generator produces truly random passwords where each character position is independently selected from the chosen character set using a CSPRNG, ensuring maximum entropy per character. The real-time strength analysis helps you understand exactly how secure your password configuration is.
The tool uses crypto.getRandomValues() — the same CSPRNG used by browsers for TLS, WebAuthn, and other security-critical operations. All password generation and strength analysis happens entirely in your browser. No passwords are ever sent to a server, stored in any database, or logged. The entropy calculation is based on the information-theoretic formula H = L * log2(N), where L is password length and N is the character pool size, giving an accurate measure of password randomness.
Key Features
- Visual password strength meter with color-coded bar (red/orange/yellow/green) based on entropy
- Real-time entropy calculation in bits with character pool size display
- Estimated crack time display assuming 10 billion guesses/sec (high-end GPU cluster)
- Enterprise policy presets: NIST SP 800-63B, Korean Financial (KISA), Corporate, Custom
- Selecting a preset auto-configures password length and character set options
- Bulk generation with quick buttons (1, 5, 10, 20, 50) plus custom count up to 50
- Per-password mini strength indicator showing entropy and strength level for each generated password
- Cryptographically secure randomness via native crypto.getRandomValues() API
- Configurable length from 4 to 128 characters with slider and numeric input
- Four character sets: uppercase (A-Z), lowercase (a-z), numbers (0-9), symbols (!@#$%^&*...)
- Individual copy button for each password plus "Copy All" for the entire batch
- 100% client-side — no passwords are ever sent to a server or stored anywhere
Frequently Asked Questions
How does the password strength meter work?
The strength meter calculates entropy using the formula H = L * log2(N), where L is the password length and N is the size of the character pool. The result in bits represents the theoretical randomness of the password. A higher entropy means more possible combinations an attacker must try. The color-coded bar maps entropy to five strength levels: Very Weak (<36 bits), Weak (<60 bits), Fair (<80 bits), Strong (<100 bits), and Very Strong (100+ bits).
How is the crack time estimated?
The crack time assumes an attacker using a high-end GPU cluster capable of 10 billion (10^10) password guesses per second. The total keyspace is 2^entropy, and on average an attacker needs to try half the keyspace. This is a conservative estimate — online attacks are typically limited to thousands of attempts per second by rate limiting, making the actual time much longer for most real-world scenarios.
What is the NIST SP 800-63B preset?
NIST SP 800-63B is the U.S. National Institute of Standards and Technology's Digital Identity Guideline. It recommends a minimum of 8 characters with no complexity requirements (no mandatory uppercase, numbers, or symbols). NIST found that complexity requirements often lead to predictable patterns (e.g., "Password1!") and that length is the primary factor in password strength. Our preset uses 16 characters with upper+lowercase for practical security.
What is the Korean Financial (KISA) preset?
The Korean Financial preset follows KISA (Korea Internet & Security Agency) guidelines used by Korean banks and financial institutions. It requires a minimum of 10 characters with at least 2 different character types (uppercase, lowercase, numbers, symbols). Our preset configures 12 characters with all four character types enabled to exceed the minimum requirements comfortably.
What password length should I use?
For most purposes, 16 characters with all character sets enabled provides excellent security (approximately 105 bits of entropy). For high-security applications like master passwords, encryption keys, or API secrets, use 24-32 characters. The minimum of 4 characters is provided for PIN-like use cases, but passwords shorter than 12 characters are not recommended for general use.
How secure are the generated passwords?
Very secure. The passwords use crypto.getRandomValues(), the same CSPRNG used for TLS encryption and WebAuthn. Each character is independently and uniformly selected from the chosen character set. With default settings (16 chars, all character sets), you get approximately 105 bits of entropy, which would take billions of years to crack even with the most powerful GPU clusters.
Can I generate passwords for a team or multiple accounts?
Yes. Use the quick batch buttons (1, 5, 10, 20, 50) or enter a custom count up to 50. Each password is generated independently with full cryptographic randomness. Each password shows its own mini strength indicator, and the "Copy All" button copies all passwords separated by newlines for easy import into a password manager or distribution.
Is my generated password stored anywhere?
No. All passwords exist only in your browser's memory while the page is open. They are never transmitted to any server, written to disk, stored in cookies, or logged in any way. The strength analysis is also computed entirely client-side. Once you navigate away or close the tab, everything is gone from memory.
What is the difference between this and Math.random()?
Math.random() is NOT suitable for security purposes — it uses a non-cryptographic PRNG that can be predicted if an attacker observes enough outputs. crypto.getRandomValues() uses the OS's cryptographic random number generator, which is unpredictable by design. This tool exclusively uses crypto.getRandomValues() to ensure every generated password is truly secure.