Test Which Attack Your Password Must Survive

Check your password's entropy above, then decide whether it only needs to survive online throttling or the far harsher math of an offline attack against a stolen hash.

Test Which Attack Your Password Actually Needs to Survive

Check your password's entropy above, then decide which threat model actually applies to it: a hundred guesses an hour versus roughly three hundred billion guesses a second is the realistic gap between an online and an offline brute-force attack against the exact same password. An online attack submits guesses directly to a live login service, one at a time, constrained by whatever rate limiting and lockout policy that service enforces. An offline attack works against a password hash an attacker has already obtained, typically from a data breach, with no network round-trip and no rate limit standing in the way beyond raw compute power.12 The same password can survive one attack type indefinitely while falling to the other in seconds, which is why deciding which threat model applies to your situation matters more than staring at the entropy score in isolation.

Online vs. offline guess rates

  • ~100 guesses/hour
  • ~300 billion guesses/second on an RTX 4090
  • ~1,560 guesses/second on the same GPU
  • ~190 million times slower under bcrypt than NTLM

The password doesn't change between scenarios — only the threat model does. A breach converts an online-throttled password into an offline target overnight.

Opens the Password Entropy Analyser with this page's reference values shown at the top of the tool.

Open in the tool →

What defines an online attack

An online attack submits login attempts through the same interface a real user would use, a website's login form or an API endpoint, and every attempt costs the attacker network round-trip time plus whatever delay the service imposes. NIST identifies throttling as the primary defense against this attack type, and a typical throttled policy might allow only around 100 guesses per hour before triggering a lockout or a CAPTCHA challenge.1

Under that constraint, even a password with modest entropy can survive indefinitely, since the attacker's guess budget is the bottleneck, not the size of the keyspace. A service with no throttling at all, however, collapses this advantage entirely, turning what should be an online attack into something closer to an unthrottled guessing race.

Why rate limits shrink the attacker's timeline to years rather than minutes

Rate limiting turns online attack defense from a password strength problem into a policy problem. A service that allows only around a hundred guesses per hour before locking out or challenging the requester makes even a weak password effectively impossible to enumerate, because the attacker's timeline stretches from seconds to years or longer. That protective effect disappears when the backend does not enforce throttling or when the attacker rotates through enough source IP addresses to avoid per-account lockouts, which is why no single entropy number can tell the full story for an online-facing password.

What defines an offline attack

An offline attack starts after an attacker has already obtained a password hash, most often through a database breach, and runs entirely on the attacker's own hardware with no rate limit at all. A single consumer GPU like an RTX 4090 can test roughly 300 billion NTLM or MD5 hashes per second, a rate that turns a modest keyspace into a target crackable within hours rather than years.2

Why the hashing algorithm decides the outcome here

A slow, deliberately expensive hash function like bcrypt changes this picture dramatically. The same RTX 4090 running bcrypt at cost factor 12 manages only around 1,560 hashes per second, roughly 190 million times slower than its NTLM rate.3 Offline attack resistance depends jointly on your password's entropy and the hashing algorithm the breached service chose, a variable entirely outside your control as a user.

From the user's perspective this split matters most when deciding how much entropy a password needs: a password that only needs to resist online guessing does not have to be especially long, because throttling caps the attacker's budget, but the same password protecting something worth a breach will eventually face an offline environment where only raw entropy and the server's hash choice determine survival.

Why the same password can be safe in one scenario and trivial in the other

A modest, moderately common password behind strict online throttling can go untested for years, simply because the attacker never gets enough guesses to reach it. That same password, if the service storing it suffers a breach and used a fast, unsalted hash, can fall in well under a second once the hash reaches an attacker's GPU. The password did not change; the threat model did.

Conversely, a very high-entropy password offers little extra protection against online throttling, since the attacker was already limited to a handful of guesses regardless of keyspace size, but it offers enormous protection if the storage backend is ever breached. Because you cannot control which scenario you will eventually face, treating every password as if it might someday be attacked offline, favoring length and a unique value per site, is the only strategy that holds up under both threat models at once, since the offline crack-time math behind a stolen hash rewards genuine randomness in a way that throttling policy alone never has to.4

The mirror-image choice facing service operators

Service operators face the mirror version of this same choice. Investing in a slow hashing algorithm costs almost nothing at login time, since a legitimate user only ever hashes their password once per attempt, but it multiplies the cost of every single guess an attacker makes after a breach, which is exactly where the real economic tradeoff between the two threat models plays out and why the choice matters long after a breach has already happened.5

When to use this

Use the entropy checker above alongside this framework to decide how much entropy a specific password actually needs. A password behind strict lockout policies and no history of breaches leans more on throttling than raw entropy; a password protecting something valuable enough to be a breach target should be built to survive an offline attack regardless of the service's own defenses.

Examples

Logging into a banking app that locks you out after 5 failed attempts

Throttling does most of the defensive work here. A reasonably strong, unique password is sufficient because the online guess budget is tiny.

A password reused across a personal account and a company system that later suffers a breach

Once the hash is stolen, throttling no longer applies. Only the password's own entropy and the breached service's hashing algorithm determine how long it survives.

Sources
  1. 1.

    NIST, "Strength of Passwords," SP 800-63-4, pages.nist.gov, accessed July 2026. https://pages.nist.gov/800-63-4/sp800-63b/passwords/

  2. 2.

    Francisco Pires, "One RTX 4090 Is Faster at Password Cracking Than Three 6900XTs, Eight 1080s," tomshardware.com, October 2022. https://www.tomshardware.com/news/rtx-4090-password-cracking-comparison

  3. 3.

    Hashcat, "Hashcat Benchmarks," hashcat.net, accessed July 2026. https://hashcat.net/benchmark/

  4. 4.

    NIST, "Strength of Memorized Secrets (Appendix A)," SP 800-63B, github.com/usnistgov, accessed July 2026. https://github.com/usnistgov/800-63-3/blob/nist-pages/sp800-63b/appA_memorized.md

  5. 5.

    IETF, "Argon2 Memory-Hard Function for Password Hashing," RFC 9106, rfc-editor.org, September 2021. https://www.rfc-editor.org/rfc/rfc9106

FAQ

Offline attacks are far more dangerous once they become possible, since they remove the rate limiting that makes online attacks slow. The realistic risk depends on whether a service you use has been breached and what hashing algorithm it used, information you generally cannot verify in advance.

Yes, because rate limiting only protects against online guessing. If that same site is later breached and the password hash is stolen, the password's own entropy becomes the only defense left, independent of whatever throttling policy protected it before the breach.

It depends entirely on the hashing algorithm. Fast hashes like NTLM or MD5 allow a single modern GPU to test hundreds of billions of guesses per second. Slow, deliberately expensive hashes like bcrypt or Argon2id can reduce that same GPU to a few thousand guesses per second or fewer.

Rarely, unless the service discloses it publicly or a breach report reveals it after the fact. This uncertainty is exactly why using a unique, high-entropy password for every account matters: you cannot verify in advance how well any given service will protect it if it is ever breached.

Because the two threat models produce wildly different timeframes for the same password, and conflating them gives a misleading picture. Showing both side by side lets you see how much of your password's protection currently comes from throttling versus from the password's own entropy. CapyToolkit does not decide that split for you, but the password entropy tool gives you the information to understand how much safety comes from the password itself versus from the service's rate-limiting choices.