md5暴力破解的难度分析:
1. 100万次md5("aaaaaa") 的时间
18测试机上: 5.6s
我的pc机上: 1.8s
2. 100万次sha1("aaaaaa") 的时间
18测试机上: 7.2s
我的pc机上: 2.0s
3. 100万次hash(md5,"aaaaaa") 的时间
18测试机上: 1.7s
我的pc机上: 2.3s
4. 100万次hash(sha1,"aaaaaa") 的时间
18测试机上: 2.3s
我的pc机上: 2.6s
5. 对于由字母和数字组成的64位的密钥,可能的情况为:
36^64 = 4011991914547630480065053387702443812690402487741812225955731622655455723258857248542161222254985216
这是一个100位的数字,但就这个数字的长度来看,我已经不想猜测需要多少机器,多长时间才能破解了。
疑问: 为什么我的pc机器上作加密比服务器要快那么多? 底层实现不一样,可以看源码。
结论:
1. sha1比md5加密强度是要大一些的, 10:9
2. 按照我的pc机器的破解速度,50万次/s
字符集: a-z A-Z 0-9 . ? – _ 共40个字符,对于最小长度的密码(6位)最慢的情况需要40^6(40亿)次的md5
40亿/50万/3600 =
4000000000/500000/3600 = 2小时
增加md5的次数,对破解难度来讲,是倍数级别的增大的;
增加密码的长度,对破解难度来讲,是指数级别的增大的;
所以试图多几次md5来增加暴力破解的难度是没有太大意义的。但是增加密码长度是很有意义的。