Password Hash & Security Evaluator
Calculate password entropy bits and generate a SHA-256 hash entirely within your browser sandbox. Includes character set analysis and strength scoring — your password never leaves your device.
Password & Passphrase Security Evaluator
Click Generate to create a passwordGenerate a password to see its hashcrypto.getRandomValues() and the Web Crypto API. Nothing is sent anywhere.How to use the Password & Passphrase Security Evaluator
You need a strong master password for your password manager. Switch to the Passphrase tab, set the word count to 6, choose a dash separator, and click Generate. The tool produces a 6-word Diceware passphrase like "correct-horse-battery-staple-fortress-brick" and shows its entropy (about 77 bits) and estimated crack time. Switch to the Password tab if you need a shorter random string instead.
Generate a memorable 5-7 word Diceware passphrase with 61-85 bits of entropy, ideal for password manager master credentials you need to type by hand. A 6-word passphrase from the 7,776-word EFF wordlist gives about 77 bits -- strong enough to resist offline attacks for centuries at 1 billion guesses per second.
Evaluate the entropy of existing API keys or random tokens. Paste the key into a text analysis tool or calculate manually: a 32-character hex string (characters 0-9, a-f) has 32 times log2(16) = 128 bits of entropy. The crack time display shows whether your key meets your security requirements.
Test whether passwords generated by your application's requirements actually provide sufficient entropy. A policy requiring "8 characters with uppercase, lowercase, and digits" yields only 48 bits -- crackable in hours. Adjust the length slider to 16 characters to see how entropy jumps to 95 bits, making the password computationally unbreakable.
How entropy and strength are calculated
The tool uses cryptographic random number generation for both passwords and passphrases, then calculates entropy based on the size of the character pool or word list. Entropy is measured in bits -- each bit doubles the number of possible combinations an attacker must try.
Cryptographic generation
Both modes use window.crypto.getRandomValues(), which draws from the operating system's cryptographically secure pseudo-random number generator (CSPRNG). For passwords, each character is chosen with rejection sampling to eliminate modulo bias -- the slight statistical skew that occurs when mapping random integers to a non-power-of-2 character set.
Password entropy formula
Entropy (bits) = length times log2(charset size). With all four character sets enabled (26 lowercase + 26 uppercase + 10 digits + 32 symbols = 94 characters), a 16-character password yields 16 times log2(94) = 16 times 6.55 = 104.8 bits. Disabling symbols reduces the charset to 62, giving 16 times 5.95 = 95.3 bits.
Passphrase entropy formula
Each word from the 7,776-word EFF wordlist contributes log2(7776) = 12.9 bits. A 5-word passphrase yields 5 times 12.9 = 64.7 bits. Appending a 2-digit number (00-99) adds log2(100) = 6.6 bits. Adding one of 8 symbols adds log2(8) = 3 bits. A 6-word passphrase with number and symbol reaches about 84 bits.
Crack time estimate
The displayed crack time assumes an attacker can test 10^9 (1 billion) passwords per second, a realistic estimate for offline attacks against fast hashes like MD5 or SHA-1. For slow hashes like bcrypt (cost factor 12), multiply the displayed time by approximately 100,000. A password showing "3 hours" crack time would take about 34 years against bcrypt.
Frequently asked questions
Is a passphrase stronger than a random password?
It depends on length. A 5-word Diceware passphrase yields about 65 bits, roughly equivalent to a 10-character fully random password. A 7-word passphrase exceeds 90 bits, which is stronger than a 14-character mixed password -- and much easier to remember. The tradeoff is that passphrases are longer to type, but most password managers auto-fill them.
How many bits of entropy does a strong password need?
For personal accounts (email, social media), 60+ bits is strong -- that is about 10 characters with mixed case and digits. For high-value accounts (banking, password manager master), target 80+ bits (14+ characters). For encryption keys, 128+ bits is standard. The tool shows entropy in real time as you adjust the length slider.
Is this generator truly random?
Yes. Both modes use window.crypto.getRandomValues(), which draws from the operating system's cryptographically secure pseudo-random number generator (CSPRNG). This is fundamentally different from Math.random(), which uses a deterministic algorithm and is predictable if the seed is known. The tool also uses rejection sampling to eliminate modulo bias in character selection.
Is SHA-256 safe for storing passwords?
No. SHA-256 is a fast hash designed for data integrity, not password storage. An attacker with a modern GPU can compute billions of SHA-256 hashes per second. Passwords must be stored using slow, memory-hard algorithms like bcrypt (cost factor 12), Argon2id, or scrypt with per-user random salt. The tool shows SHA-256 for demonstration only.
What is the "Avoid ambiguous characters" option?
When enabled, the generator excludes characters that look similar: 0 (zero) vs O (uppercase o), l (lowercase L) vs 1 (one) vs I (uppercase i). This reduces the charset from 94 to 77 characters, losing about 1.3 bits of entropy per character. Use this when the password will be displayed in a font where these characters are hard to distinguish.
How does the crack time change with different hash algorithms?
The tool assumes 1 billion guesses per second, realistic for fast hashes like MD5, SHA-1, or SHA-256. If your passwords are stored with bcrypt at cost factor 12, each guess takes about 100 milliseconds instead of 1 nanosecond -- making the actual crack time 100,000 times longer than displayed. Argon2id with default parameters is even slower for GPU attacks.