I would like to ask if there are 2^1000 possibilities to choose from, how long would it take go through them all on average? (in terms of min, hours or years)

Note: This is not necessary related to passwords, but more into figuring out a random sequence

Is there any metric/general rule of thumb that I can use to give a rough estimation?

Something along the lines of "it would take x amount of years using y computer to go through all the combinations"


The calculation is simple. First, figure out how many "tries" a computer can do per second, minute, or hour, etc. Obviously it depends on the computers. For example, let's say 1000 calculations per second.

So time in seconds = 2^1000 / 1000 = 1.071509e+298

Then you can convert in minutes by dividing that number by 60, and so on.

The formula is: timeInUnit = nbCombinations / (CombinationsPerUnit * nbComputers)

The time to try all combinations is the number of combinations divided by the number of combinations the computer can do in that time unit, again divided by the number of computers you have.

HOWEVER, to reach a particular sequence, you can, on average, divide that time by 2. Because in a real scenario, you don't have to try every combination, you stop when you get the one you want. On average, you will hit it after having exhausted half the possibilities. You could get lucky and hit it on your first try, or you might have to go through every combination.

Now, to hit a certain number of sequences, say 3, how much time does this take on average? Not three times as much, because at most trying every combination will guarantee you hit those 3. But it has to be more than half the time, right? Well, that's a fun probability problem, I'll let you figure it out.

| improve this answer | |
  • You have been of tremendous help Mr Chow, thank you – Creatoza Jun 30 '15 at 20:39

I don't think there is any general metric/rule of thumb that can be applied as the time to brute force is completely dependent on the nature of data being brute forced and the power of the system it is being done on. Without being able to give values to those two variables there is no way you can estimate how long it will take.

What you can do calculate a reasonable g/s (guesses per second) value given x and y in your scenario and from there simply extrapolate the time it would take. If you don't want to do that and simply want to get a quick estimate on searching through a specific key space, you can go to GRC's Interactive Brute Force “Search Space” Calculator, that should give you a rough estimate on the required time to search through your defined key space.

enter image description here

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.