Audited ·Last updated 28 Jul 2026·7 citations·Tier 1·0 uses

Password Crack Time Calculator

Estimate how long an offline attacker needs to brute-force a randomly generated password, using published hashcat benchmark rates for MD5, NTLM, SHA and bcrypt.

Password Crack Time Calculator

Alphabet the generator drew from
Capped at 64, the maximum length NIST SP 800-63B-4 asks verifiers to accept. For a wordlist alphabet this is the number of words.
How the password is stored
Cracking a single stolen hash scales close to linearly across GPUs, so eight cards are roughly eight times faster. Use this to model a rig or a rented cloud fleet.
Only used when the storage option above is set to Custom. Enter the per-device rate; the device count still multiplies it.
Attack model
Estimated time to crack
About 46,148 years
The duration in the largest sensible unit, from microseconds to powers of ten of years. Valid only for a secret generated uniformly at random and only for an offline attack on a stolen hash.
Time in years
46,147.5053 yr
Time in seconds
1,456,304,512,900 s
Strength being attacked
78.6551 bits
Effective guess rate
163,400,000,000
Guesses required (power of 10)
23
What this estimate assumes
An attacker expects to make about 2.38 × 10^23 guesses before hitting this secret — half the space, which is the expected number over a uniform key space. At 163,400,000,000 guesses per second — unsalted MD5 (hashcat mode 0) on 1 RTX 4090-class device, per hashcat's published benchmark — that is about 46,148 years. This is an offline estimate: it assumes the attacker already holds the stolen password hash and can test guesses at full speed, so it moves by orders of magnitude the moment the hashing scheme or the hardware changes. It also assumes the secret was generated uniformly at random from the 94 printable ASCII characters — a password a person invented falls far sooner, and nothing here says any particular password is safe.

Background.

This calculator estimates how long an attacker who has stolen a password hash would need to brute-force it, and it puts the two variables that actually decide the answer in front of you rather than hiding them in a constant. The first is the size of the space the attacker has to search, which comes from the alphabet and the length. The second is how many guesses per second the attacker can make, which comes from the password hashing scheme and the hardware — and which varies by a factor of about a hundred million across the options on this page, on identical silicon.

That second point deserves saying plainly, because almost every "how long to crack my password" answer on the internet quietly assumes one hash and one machine. A 12-character password drawn at random from the 94 printable ASCII characters takes roughly 46,000 years to break on a single RTX 4090 if the site stored it as unsalted MD5. The identical password takes about 4.5 trillion years if the site used bcrypt at cost 12. The password did not change. The storage did. If you take one thing from this page, take that: the number below is far more a statement about the service holding your password than about the password itself.

The guess rates are not invented. Every preset is quoted verbatim from the hashcat project's own published benchmark of hashcat 7.0.0 on a single NVIDIA GeForce RTX 4090: 163.4 GH/s for MD5, 271.9 GH/s for NTLM, 58,562.8 MH/s for SHA-1, 22,138.4 MH/s for SHA-256, 1,195.7 kH/s for sha512crypt at 5,000 rounds, and 212.6 kH/s for bcrypt. One rate is derived rather than measured and is labelled as such: hashcat's bcrypt benchmark runs at cost factor 5, which is 32 iterations, so the cost-12 figure of 1,660.9375 guesses per second is that benchmark divided by 128, because 4,096 iterations is 128 times the work of 32. There is also a custom option, because no benchmark survives the next generation of hardware and you should be able to model whatever rate you think is realistic.

The attack modelled here is offline. The attacker holds the hash, runs locally, and tests guesses as fast as the hardware allows. That is the case that matters after a breach, and it is the case in which the strength of the password is the only thing standing between the attacker and the plaintext. It is not the case when someone is typing guesses into a login form: NIST SP 800-63B-4 requires verifiers to limit consecutive failed authentication attempts to no more than 100, so an online attack is bounded by the number of attempts the service permits, not by elapsed time, and no guesses-per-second figure describes it honestly. That is why there is no "online attack" preset here.

The arithmetic assumes the secret was generated uniformly at random from the stated alphabet — by a password manager, by dice, by a key generator. If you invented the password yourself, the estimate is an upper bound you will never reach, because real attackers do not start at aaaaaaaaaaaa and count upwards. They run wordlists, then leaked-password corpora, then rule-based mutations that know all about capitalising the first letter and appending a year. That is why NIST SP 800-63B-4 abandoned entropy scoring for human-chosen passwords entirely in favour of a length floor plus a breach-corpus blocklist. Nothing on this page is a verdict that a specific password is safe, and the note under the result says so on every render.

Below the widget you will find the derivation, the full benchmark table with the exact lines it was read from, a worked example computing 94¹² by hand, the difference between the average case and an exhaustive search, and an explanation of why moving a password from MD5 to bcrypt buys more security than adding four characters ever could.

What is password crack time calculator?

Password crack time is an estimate of how long a brute-force search takes to find a secret, computed as the number of guesses required divided by the number of guesses per second the attacker can make. The guess count comes from the search space: a secret of L symbols drawn from an alphabet of C symbols has C^L possibilities, and over a uniform space an attacker expects to find it after searching half of them, so the average case is C^L ÷ 2 and an exhaustive search is C^L. The guess rate is a property of the defender's storage choice and the attacker's hardware, not of the password. A fast general-purpose hash such as MD5 or SHA-256 was designed to be quick, which is exactly what makes it a poor password store — a single consumer GPU tests tens of billions of candidates a second against it. A password hashing function such as bcrypt, scrypt or Argon2 is deliberately slow and deliberately memory-hungry, and its cost parameter is a dial the defender turns: bcrypt's cost is the base-2 logarithm of its iteration count, so raising it by one doubles the attacker's work forever after. The resulting estimate is a ceiling, not a prediction. It describes the time to exhaust the space, which is what an attacker faces only when the secret really was drawn uniformly from that space. Against a human-chosen password, an attacker armed with a leaked-password corpus and a rule engine is typically finished in a tiny fraction of the time this page reports, which is why the figure should be used to compare storage schemes and generator settings, never to certify a password you thought up.

How to use this calculator.

  1. Pick the alphabet the generator was configured with. If your password manager was set to letters and digits only, choose 62 even if the password it produced happens to contain a symbol-looking character.
  2. Enter the length. For a passphrase, choose one of the EFF wordlists and enter the number of WORDS. The field is capped at 64 because that is the maximum length NIST SP 800-63B-4 asks verifiers to accept.
  3. Choose how the password is stored. If you do not know, assume the worst — a service that has not said otherwise may well be using a fast unsalted hash, and that assumption is the one that matters after a breach.
  4. Set the number of devices. One is a single high-end consumer GPU. Eight models a typical purpose-built rig. Six figures models a well-funded adversary renting cloud capacity.
  5. Leave the attack model on Average unless you specifically want the bound. Average case is half the space, which is the expected number of guesses over a uniform key space; exhaustive is exactly twice that.
  6. Read the note under the result before you read the result. It states the two assumptions the whole figure rests on: an offline attack on a stolen hash, and a secret produced by a random generator rather than by a person.

The formula.

T = (C^L ÷ 2) ÷ (r × d) Y = T ÷ 31 557 600

The search space is C^L: a secret of L symbols, each drawn independently from an alphabet of C symbols, has that many possible values. If the draw was uniform, every value is equally likely, so an attacker working through the space in any fixed order expects to hit the right one halfway through. That gives C^L ÷ 2 as the expected guess count and C^L as the guarantee. This page defaults to the average case because it is the honest expectation; the exhaustive figure is offered because it is the number most people picture, and it is always exactly double.

Dividing by the guess rate turns guesses into seconds. The rate is the product of a per-device figure and the number of devices, and GPU cracking of a single stolen hash parallelises almost perfectly, so treating eight cards as eight times one card is a good approximation and a slightly conservative one.

The per-device figures come from hashcat's own published benchmark output. The exact lines are reproduced in the citations, and the important structural fact they reveal is the size of the gap: 163.4 GH/s for MD5 against 212.6 kH/s for bcrypt at hashcat's default cost, a ratio of roughly 770,000 to one, and against 1,660.9 H/s for bcrypt at cost 12, a ratio of roughly 98 million to one. In entropy terms, moving a password from unsalted MD5 to bcrypt cost 12 is worth about 26.5 bits — the same as adding four characters to a printable-ASCII password, achieved without the user changing anything at all.

The bcrypt cost-12 rate is the one derived number on this page and it is worth showing the working. hashcat's mode 3200 benchmark prints 'Iterations: 32'. bcrypt's cost parameter is the base-2 logarithm of its iteration count, so 32 iterations is cost 5. A deployment at cost 12 runs 2¹² = 4,096 iterations, which is 4,096 ÷ 32 = 128 times the work per guess, so the rate is 212,600 ÷ 128 = 1,660.9375 guesses per second. Every doubling of the cost parameter halves it again.

Seconds are converted to years using the Julian year of exactly 365.25 days at 86,400 seconds each, which is 31,557,600 seconds — the definition NIST gives in its Time and Frequency reference and the same constant used elsewhere in this codebase. Both time outputs are rounded to 12 significant digits rather than to a fixed number of decimal places, because they range from well under a microsecond to well past 10²⁴⁰ years and no fixed decimal place is meaningful across that span.

A worked example.

Example

A password manager generates a 12-character password from the 94-character printable-ASCII alphabet. The site stores it as an unsalted MD5 hash. The site is breached. One attacker with one RTX 4090 starts work. The search space is 94¹², which is worth computing by hand: 94⁴ = 78,074,896 and 94⁸ = 6,095,689,385,410,816, so 94¹² = 6,095,689,385,410,816 × 78,074,896 = 475,920,314,814,253,376,475,136. Half of that — the expected number of guesses — is 237,960,157,407,126,688,237,568, or about 2.38 × 10²³. Dividing by hashcat's benchmarked 163,400,000,000 guesses per second gives 1,456,304,512,895.51 seconds. At 31,557,600 seconds per Julian year that is 46,147.5052886 years, which the calculator displays as 'About 46,148 years'. The password itself is worth 12 × log₂(94) = 78.6550662201 bits. Now change one thing. Leave the password exactly as it is and switch the storage to bcrypt at cost 12, whose rate is 212,600 ÷ 128 = 1,660.9375 guesses per second: the same 2.38 × 10²³ guesses now take 4,539,907,350,010 years, or about 4.54 trillion. The defender changed nothing about the password and multiplied the attacker's work by roughly 98 million. For contrast in the other direction, shorten the password to 8 characters and leave it on MD5: the space collapses to 6,095,689,385,410,816, half of that is 3,047,844,692,705,408 guesses, and at 163.4 GH/s the whole thing is over in 18,652.66 seconds — about 5.18 hours on a single graphics card.

attack Modelaverage
custom Guesses Per Second1,000,000,000
device Count1
length12
poolascii-94
hash Algorithmmd5

Frequently asked questions.

Is this how long it would take to crack my actual password?
Almost certainly not, and the error runs in one direction: this figure is far too optimistic for a password you invented. The calculation assumes an attacker searching a space uniformly, which is what they would have to do against a randomly generated secret. Against a human-chosen password nobody brute-forces anything. They run a leaked-password corpus first, then a wordlist, then rule-based mutations that already know about capitalising the first letter, swapping 'a' for '@', and appending a year or an exclamation mark. Passwords that this page would score at 60 or 70 bits routinely fall in minutes to that pipeline. Use this page to compare storage schemes and generator settings, not to grade a password you thought up.
Why is there no option for an online attack against a login form?
Because an online attack is not bounded by a guess rate, it is bounded by attempts. NIST SP 800-63B-4 requires verifiers to implement rate limiting and to permit no more than 100 consecutive failed authentication attempts on an account. Under that rule an attacker never gets a meaningful fraction of any search space regardless of how fast their hardware is, so a guesses-per-second figure would be misleading rather than conservative. The realistic online threats are credential stuffing with already-breached passwords, phishing, and password reset flows — none of which this or any brute-force calculator models. The offline case is the one where raw password strength is the deciding variable.
Where do the guess rates come from and how current are they?
They are quoted verbatim from the hashcat project's own forum benchmark thread for hashcat 7.0.0 running on a single NVIDIA GeForce RTX 4090 with CUDA 12.6 — the same tool and the same hardware class an attacker would actually use. The exact lines are reproduced in the citations, including hash-mode numbers and the iteration annotations that fix bcrypt's cost factor. They will age. GPU throughput rises every generation, and a rate that looks conservative today will look quaint in five years, which is exactly why the device-count and custom-rate inputs exist. Treat any specific number here as a snapshot, and treat the ratios between hashing schemes as the durable part.
Why does moving from MD5 to bcrypt matter more than making my password longer?
Because it is a multiplier on every guess, applied to every user at once, and it costs the user nothing. The gap between unsalted MD5 at 163.4 GH/s and bcrypt cost 12 at 1,660.9 H/s is a factor of roughly 98 million, which is about 26.5 bits — the same benefit as adding four characters to a printable-ASCII password. Adding four characters requires every user to change their password. Raising the cost factor requires one deployment. And bcrypt's cost parameter is a logarithm, so each increment doubles the attacker's work again while roughly doubling the server's own verification cost from a base that is measured in milliseconds.
Should I use the average case or the exhaustive figure?
Average, unless you are specifically stating a bound. Over a uniform key space an attacker who works through candidates in any fixed order expects to find the target after covering half the space, so C^L ÷ 2 is the expected number of guesses and the exhaustive C^L is simply twice it. The distinction rarely changes a decision, since one bit of entropy is exactly a factor of two, and the choice between the two figures is worth exactly one bit. What does change decisions is the hashing scheme, which is worth twenty-six.
Does salting change the crack time?
For one targeted password, no. A salt does not slow down testing a guess against a specific hash, so the figure on this page is unchanged. What a salt destroys is the economics of attacking many accounts at once: without salts an attacker computes each candidate hash once and compares it against every user in the breach, and precomputed rainbow tables work. With per-user salts, every candidate must be recomputed for every user, so cracking a million accounts costs a million times as much as cracking one. Salting is about the population; the cost factor is about the individual.
What about GPUs getting faster, or an attacker with a thousand of them?
Set the device count. Cracking a single stolen hash parallelises close to linearly, so a thousand cards is about a thousand times faster and the field accepts up to a million. Hardware improvement is the slower-moving half of the problem: GPU hash throughput has improved by roughly one order of magnitude per decade, so a secret that survives 10²⁰ years today is not going to be rescued by Moore's law. A secret that survives five hours today, on the other hand, survives about thirty minutes on next decade's hardware. Estimates near the human timescale are the ones that decay dangerously.
What is the difference between the 'bcrypt cost 5' and 'bcrypt cost 12' options?
The cost factor is the base-2 logarithm of bcrypt's iteration count, so cost 5 is 32 iterations and cost 12 is 4,096 — 128 times the work per guess. hashcat's published benchmark runs at cost 5 (its output prints 'Iterations: 32'), so that figure of 212.6 kH/s is the measured one and the cost-12 figure of 1,660.9375 H/s is that number divided by 128. Cost 5 is far too low for a production deployment and is included only because it is what the benchmark actually measured; cost 12 or higher is the realistic setting. If your deployment uses a different cost, halve or double the rate accordingly and enter it as a custom rate.
Why is the length capped at 64 characters?
Because that is the longest password a standards-compliant verifier is guaranteed to accept: NIST SP 800-63B-4 says verifiers SHOULD permit a maximum password length of at least 64 characters. Beyond that you are modelling something no login form will store. The cap also keeps the arithmetic honest — the seconds and years outputs are real IEEE 754 numbers rather than an overflow to infinity, even at the slowest guess rate the page will accept. If you need entropy figures for a longer secret, such as a cryptographic key, the password entropy calculator models up to 1,024 symbols.
The result says trillions of years. Does that mean the password is unbreakable?
It means brute force is not the way in, which is a much narrower claim. Every large number on this page evaporates if the password is reused on a site that gets breached, if it is phished, if it is captured by malware on the machine that types it, if the account can be reset through an email address that is itself weakly protected, or if the service stores a recoverable copy. Brute-force resistance is one property of one secret against one attack. Treat a very large number here as evidence that your generator settings are fine and that your attention belongs somewhere else.

References& sources.

  1. [1]hashcat project forum — 'NVIDIA RTX 4090 Benchmark HC 7.0.0' (hashcat 7.0.0, CUDA 12.6, one NVIDIA GeForce RTX 4090). Source of every guess rate on this page, quoted verbatim: Hash-Mode 0 (MD5) 163.4 GH/s; Hash-Mode 1000 (NTLM) 271.9 GH/s; Hash-Mode 100 (SHA1) 58562.8 MH/s; Hash-Mode 1400 (SHA2-256) 22138.4 MH/s; Hash-Mode 1800 (sha512crypt $6$) [Iterations: 5000] 1195.7 kH/s; Hash-Mode 3200 (bcrypt $2*$) [Iterations: 32] 212.6 kH/s. The 'Iterations: 32' annotation is what fixes the benchmarked bcrypt cost factor at 5 and makes the cost-12 rate derivable as 212,600 ÷ 128.
  2. [2]NIST SP 800-63B-4, Digital Identity Guidelines: Authentication and Authenticator Management, §3.1.1.2 and §3.2.2. Source of the 64-character length ceiling used here ('Verifiers and CSPs SHOULD permit a maximum password length of at least 64 characters'), the 15-character single-factor minimum, and the rate-limiting requirement that bounds an online attack at no more than 100 consecutive failed authentication attempts.
  3. [3]NIST SP 800-63B-4, Appendix A 'Strength of Passwords'. Source of the standing caveat that this page's arithmetic does not describe a human-chosen password: entropy has often been used to characterise user-chosen password strength, but estimating it for a human's choice is problematic, so the guideline adopts 'a different and somewhat more straightforward approach based primarily on password length'.
  4. [4]NIST, Computer Security Resource Center Glossary — 'security strength'. 'A number associated with the amount of work (i.e., the number of operations) that is required to break a cryptographic algorithm', measured in bits, with roughly 2^S operations required at strength S. Used to relate the guess counts on this page to the bit figures beside them.
  5. [5]NIST, Time and Frequency from A to Z (X to Z). Source of the year constant used to convert seconds to years: 'In astronomy, the Julian year is defined as being equal to exactly 365.25 days, with each day having 86,400 seconds' — 31,557,600 seconds.
  6. [6]IETF RFC 20 (Internet Standard 80), 'ASCII format for Network Interchange'. Source of the printable-character alphabet sizes: US-ASCII graphic characters occupy code points 0x20 through 0x7E inclusive with SPACE listed inside the graphic set, giving 95 printable characters or 94 excluding SPACE.
  7. [7]Electronic Frontier Foundation (2016). 'Deep Dive: EFF's New Wordlists for Random Passphrases'. Source of the passphrase pool sizes offered here: the long list is '7,776 words (6⁵)' and the two short lists are '1,296 words (6⁴)'.

In this category

Embed

Quanta Pro

Paid features are coming later.

  • All 590 calculators remain free
  • No billing is enabled
Coming soon