-4

I read an article by a stackexchange founder: http://www.codinghorror.com/blog/2012/04/speed-hashing.html

It talks about: " two ATI Radeon 7970 cards generating nearly 16000 M c/s with MD5."

" the full range of a common US keyboard – that is, including uppercase, lowercase, numbers, and all possible symbols:

all 6 character password MD5s   47 seconds

all 7 character password MD5s   1 hour, 14 minutes

all 8 character password MD5s   ~465 days
"

Here is the problem. Those calculations don't match:

6 characters: (95^6)/(16000*10^6)= 45.94 seconds.

7 characters: (95^7)/(16000*10^6*60*60) = 1.21 hours.

8 characterse: (95^8)/(16000*10^6*60*60*24) = 4.79 days.

Same for his other calculations: "just uppercase, lowercase, and numbers" (26 lowercase, 26 uppercase, 10 numbers)

all 6 character password MD5s   3 seconds
all 7 character password MD5s   4 minutes
all 8 character password MD5s   4 hours
all 9 character password MD5s   10 days
all 10 character password MD5s  ~625 days

6 characters: (53^6)/(16000*10^6) =1.38 seconds.

7 characters: (53^7)/(16000*10^6*60)=1.22 minutes.

8 characters: (53^8)/(16000*10^6*60*60)=1.08 hours

9 characters: (53^9)/(16000*10^6*60*60*24)=2.38 days.

10 characters: (53^10)/(16000*10^6*60*60*24)=126.51 days.

user129789
  • 165
  • 4

1 Answers1

2

956 / 16000*106 = 45.94, not 459.4. You forgot a zero: that's 16 billions hashes per second, not 1.6 billions. The actual figure is, as Jeff says, "nearly" 16000 millions, which means "a bit less" -- hence 47 seconds, not 46.

Add the missing zero in your computations and all the numbers will be correct.

Tom Leek
  • 172,594
  • 29
  • 349
  • 481
  • How about the 8 characters: (95^8)/(1600010^6606024) = 4.79 days. vs ~465 days – user129789 Aug 01 '13 at 14:11
  • Well, that one is off: Jeff used the figure for 9 characters instead of 8. That's a typographic error, which you could point out to him. (It doesn't change much to his point, though.) – Tom Leek Aug 01 '13 at 14:17