Skip to content
universalPassword Generator

Blog

Brute Force vs Dictionary Attack

Two cracking methods explained — and what makes a password immune to both.

By the Universal Password Generator Team

What a brute force attack is

A brute force attack generates and tests every possible combination of characters, starting from the shortest and working up through length. It is exhaustive by definition: given enough time and computing power, it will eventually find any password. The attack requires no knowledge of what the password might be — it tries everything. The limitation is that the number of combinations grows exponentially with password length, making long passwords computationally infeasible to brute force with any realistic hardware.

Against fast, unsalted hashes such as MD5, a modern multi-GPU rig can test on the order of 300 billion guesses per second. All 8-character lowercase passwords (26⁸ = 209 billion) would be exhausted in under a second. With all printable characters (95 options), the same 8 characters become 95⁸ = 6.6 quadrillion, which takes several hours at that rate. At 12 characters with all character types, the number of combinations exceeds 10²³ — beyond any practical brute force. At 16 characters (95¹⁶ ≈ 4.4 × 10³¹), it would take far longer than the age of the universe at that rate.

What a dictionary attack is

A dictionary attack uses a precompiled list — a "dictionary" — of known passwords, common words, and their predictable variations. Rather than trying every possible combination, it tests a curated set of what people actually choose. The most famous wordlist, Rockyou, was originally the leaked passwords from a 2009 breach of about 32 million accounts; Rockyou2024, published in 2024, is a compilation of almost 10 billion previously leaked passwords. Most common passwords, leaked passwords, and likely variations are covered.

Modern dictionary attacks use rule-based transformations applied to each wordlist entry: capitalise the first letter, append digits 0–9, substitute e→3, a→@, o→0, add common suffixes like "123" or "!", duplicate the word, reverse it. A wordlist of 100 million entries with 1,000 transformation rules generates 100 billion candidates — approaching the coverage of brute force but targeted at what humans actually choose.

Hybrid attacks: combining both methods

Most real-world password cracking combines both approaches. A hybrid attack uses a dictionary as the base, applies brute force extensions to each entry (e.g., try every digit suffix 0–999 on each word), and applies rule-based transformations. Tools like Hashcat and John the Ripper implement sophisticated hybrid modes. The goal is to prioritise the most likely passwords first and work outward to less likely ones — cracking the maximum number of accounts in the available time.

Which attack is more effective

Dictionary attacks crack far more passwords per unit of time than brute force. Most people choose passwords from a limited vocabulary of words, names, dates, and common patterns. A good dictionary with transformation rules typically cracks a large share of real-world human-chosen passwords, especially short ones. Brute force would reach those same passwords eventually but spends enormous compute time testing nonsensical combinations like "xqzrvp" that nobody would ever choose.

What a random password resists

A genuinely random password is immune to dictionary attacks because it is not in any dictionary and matches none of the transformation rules that generate candidates from dictionary entries. "mX9#kPqw2&Ld" is not a word, not a name, not a pattern — no ordinary dictionary contains it, and no transformation rule is likely to generate it. The only attack that can find it is pure brute force, which at 12+ characters is computationally infeasible.

The practical defence

Use a password generator set to at least 16 characters with all character types enabled. The generated output will be random — not derived from any word, pattern, or human choice — and therefore effectively immune to dictionary attacks. The length makes brute force infeasible on any hardware that exists or is plausible in the foreseeable future. A password manager stores the output so you never need to type or remember it.

Why the hash algorithm changes the math

Every speed figure above assumes an attacker who has stolen a database of fast, unsalted hashes. Sites that store passwords with a deliberately slow, salted algorithm such as Argon2, scrypt or bcrypt force the attacker to spend far more work per guess, which is why OWASP recommends them for password storage. Online attacks against a login form are slower still, because rate limiting and lockouts cap the number of guesses. In practice, both attack types matter most after a breach: that is when a weak password can be tested offline at full speed, and a long random one cannot.

Generate a secure password now

→ universalpasswordgenerator.com