Naive entropy = log2(charset size) Γ length. Real entropy accounts for what an attacker knows about how humans choose passwords.
Dictionary attacks are the primary threat
Offline cracking tools like Hashcat don't start with random character combinations. They start with wordlists β billions of leaked real passwords, dictionary words, names, dates, keyboard patterns β and apply mutation rules (append numbers, substitute symbols, capitalise first letter). If your password was constructed by a human without a generator, it's likely to have structure that appears in these rules.
zxcvbn β a better algorithm than rules
Dropbox's open-source zxcvbn library estimates crack time using pattern matching against real wordlists rather than character-class rules. It recognises that P@ssw0rd is weak regardless of its character mix, and that a 4-word random phrase is strong. NIST 800-63B explicitly endorses this type of approach over complexity rules.
Entropy bits explained simply
If a password has 40 bits of entropy, an attacker who knows exactly your method (e.g., "random characters from lowercase + digits") needs on average 239 β 550 billion guesses to find it. At 1 trillion guesses/second (current GPU performance), that's about 9 minutes. At 60 bits, it's 36,000 years at the same rate.
Context matters: online vs offline attack
An online attack against a login form is rate-limited to maybe 10β100 guesses per second by server-side throttling. An offline attack against a leaked hash database runs at GPU speeds. A password strong enough for an online form (30 bits) is trivially cracked if the hash leaks. Design for the worst case: offline cracking.
Personal information is always guessable
Targeted attacks β against a specific person β use name, birthday, pet names, sports teams, address, alma mater. Automated tools now scrape social media to personalise their wordlists. No amount of complexity rules saves a password like London2012! when an attacker knows you're British and love football.
The checker sees the structure, not the secret
Strength checkers (including this one) never send your password anywhere. Everything runs locally in your browser. The feedback is based on pattern analysis of the password's structure β same analysis a cracking tool would do β not on checking against a specific leaked database. For breach checking, this tool uses the HaveIBeenPwned k-anonymity API which only sends a 5-character hash prefix, not the password.