mkp224o
mkp224o is a tool that generates onion v3 links by bruteforcing keys.
i have used this tools various times, for example to create one of my tor mirrors: levant7s4d2n2guooxi6sjyw55fhowbaq4xvj4xh44ph6kyecvk2yxid.onion.
some informations about it:
github page:https://github.com/cathugger/mkp224o
syntax: ./mkp224o filter(s) [options]
you decide which filter to use and the tool will try and bruteforce keys that match the filter you gave it. the longer the filter is, the longer it will take.
there is quite a difference between trying to bruteforce a 4 character long filter and an 8 character long filter. the latter takes so much longer.
because of the variety of hardware and the luck factor it's impossible to pinpoint how much time mkp224o needs to find an address. but there is a formula for it.
t = log(1-p) / log(1-(1/32^n))
- log is the common logarithm (base 10)
- t is the amount of tries the tool has to do
- p is the probability in % of finding one (this is up to you)
- n is the number of characters your filter has
taking all of these into considerations, the amount of tries the tool must do to have a 25% chance of finding a 5 character long filter is:
t = log(1-25%) / log(1-(1/32^5))
t = 9653008
so it would take any computer that amount of tries before having a 25% chance of having found a 5 character long filter.
you can know how many times your computer has tried to bruteforce it by using the -s argument with mkp224o which prints statistics every 10 seconds.
the first statistic should be calculations per second and the last should be how many seconds have passed.
multiply the calculations per second and the seconds elapsed and you get the amount of tries.
here is a table for filters that are long 5 to 10 characters.
50% | 80% | 90% | 95% | 99% | |
---|---|---|---|---|---|
5 | 23258160 | 54003775 | 77261934 | 100520094 | 154523868 |
6 | 744261118 | 1728120799 | 2472381917 | 3216643035 | 4944763834 |
7 | 23816355775 | 55299865590 | 79116221365 | 102932577139 | 158232442729 |
8 | 762123384785 | 1769595698904 | 2531719083689 | 3293842468474 | 5063438167378 |
9 | 24387948313145 | 56627062364953 | 81015010678099 | 105402958991244 | 162030021356198 |
10 | 780414346020669 | 1812065995678540 | 2592480341699209 | 3372894687719879 | 5184960683398419 |
and, just for shits and giggles, it is expected that you will find at least one match for a 26 character search (abcdefghijklmnopqrstuvwxyz) after 943,463,052,902,053,176,551,776,571,056,617,937,596 trials 50% of the time.
that number is: nine hundred forty-three undecillion four hundred sixty-three decillion fifty-two nonillion nine hundred two octillion fifty-three septillion one hundred seventy-six sextillion five hundred fifty-one quintillion seven hundred seventy-six quadrillion five hundred seventy-one trillion fifty-six billion six hundred seventeen million nine hundred thirty-seven thousand five hundred ninety-six.
my pc does 30,000,000 calculations per second, so it would take me 31448768430068439218392552368553 seconds to have a 50% chance of finding a match. that's 996571799141705422576697 years. (nine hundred ninety-six sextillion five hundred seventy-one quintillion seven hundred ninety-nine quadrillion one hundred forty-one trillion seven hundred five billion four hundred twenty-two million five hundred seventy-six thousand six hundred ninety-seven).
to put that into perspective, the universe is about 13.8 billion years old.
or, if you really get lucky and hit the 0.00000000000000000000000000001% chance of finding one, you will find it after approximately 137 million tries.