title: 293.破解你的口令 outline: deep

在网上看到一张口令破解的表格,如下所示(第一列是口令长度,第二列是全小写的口令,第三列是有大写字母的口令,第四列是又加上了数字和其它字符的口令)

如果你想知道自己的口令花多少时间可以被破确,你可以访问下面这个网站:(更新2011/3/2晚10点15

http://howsecureismypassword.net/

这里先说一个这里说的口令破解。一般来说用户的口令都是以MD5编码加密放在数据库里的,MD5是不可逆的,所以,当你拿到你一串被MD5后的字串,你可以使用暴力破解——穷举所有的可能口令的MD5字串,然后和数据库里的对比,比对了你就知道口令了。当然,你一定要清楚,在某些审查很严重的地方,互联网内容提供商不一定会把你的口令以MD5加密,甚至就是明文(Plain Text)保存,所以你还需要小心,关于如何设计你的口令,请参看这篇文章

从上面这表格我们可以看到,你的口令最好是在8个长度以上,而且一定要有在小写和数字,最好再加上其它字符,这样你的口令被破解的时候最需要463年,这样就比较安全了。当然,如果你的口令使用了一些常用的单词,那就另说了,现在破解口令一般都不会使用暴力破解,都是用一个尝用口令字典表来尝试——比如这篇文章所说的字典表

但我提醒一下,这张表里中的时间忽略了一个问题,那就是并行,可以使用多台电脑多个进程并行破解口令,这样一来,上表中的时间就可大打折扣了。你只需要愿意花2000美刀,你就能够找到一个地方,1秒种计算7亿个口令,因为MD5,SHA这类的算法性能太好了。所以,你可能需要使用新的算法来加密你的口令,这种算法最好加上时间,也就是在算法的计算时间加长。呵呵,慢也有慢的好处。可能你需要考虑一下bcrypt算法,你可以查看本站的这篇文章