月光博客 » 编程开发 » 有关MD5加密后的密码安全讨论

有关MD5加密后的密码安全讨论

  刚才在月光博客上看到一有关MD5的安全性问题的文章,文章写得不错,但是我个人还有一些想补充的地方,算是对作者这个文章的补充。

  对于一些经常上网的网民来说,密码是必不可少的,你上论坛,就得注册用户,自然就会有密码,你如果有用到网银交易,就会有网上交易密码之类的,还有支付宝之类的一些常见的支付密码。虽然我对网银和支付宝的用户密码方式不是太清楚,但是有一点你要清楚,如果有黑客把社会工程学利用得好,就可以通过你别的常用密码来获取到你的个人密码习惯,然后获取到你的常用密码组合;不要以为我是在吓你,网上有很大一部分人群的常用论坛账号或是QQ登陆密码等等差不多就是一个密码,其实这是相当危险的。

  文章中有用一个密码用MD5加密,然后通过MD5破解到还原后的密码。可以看出现在的MD5密码加密其实也并不是百分百的安全,至少一部分加密后的密码可以在网上免费查出来,原理也相当简单,就是通过数据库比对的方式查询已知的加密密码的MD5来获取到原密码,文章中作者有一点没有提及到,这个解密的网的站的一些信息,你登陆这个MD5解密网站就会在最上面看到:

  本站拥有世界上最大的数据库,查询速度也很快,大部分查询是免费的。

  实时查询共有457,354,352,282条,已包含11位及11位以下数字、8位小写字母、7位小写字母加数字、6位大小写字母加数字等组合。

  后台分布式查询记录共有176,149,422,453,689条,包含12位数字、9位小写字母加数字、7位任意字符。

  这说明了,如果你的密码是非常简单的纯数字,纯字母,或是简单的组合,在小于一定位数以下,就能很容易被人破解出来,如果你的账号不是非常重要当然无所谓,但是如果你的账号很重要,那么就非常重要了,比如:如果你是一个站长,你的网站的后台让某个黑客知晓了,并且也获取到你的用户以及加密后的MD5值密码,那你的网站就有危险了,我在落伍上面写过一篇有关网站安全的问题,其中有涉及到密码的复杂性要求,如果你有兴趣,可以上落伍论坛搜索一下!

  话说那个解密的网站,据说那个网站现在的解密数据量达到TB级别,现在大部分黑客在入侵的时候都有用到过这个网站的解密功能,相信不少网站的沦陷都有这个解密站点的帮忙。还有一点就是,这个网站对于一些简单的解密是免费的,对于一些复杂的密码,就需要付费了。

  原文的作者有提到说利用用户查询MD5密码的时候搜集这些信息,然后制成数据库再卖钱,这一点我觉得可行性还是有的,但是做起来却不是那么容易,毕竟收集比较耗时,而且量并不一定大,有人曾传言:MD5的解密数据都是收集了很多国内外大型社区的用户数据库整理来的,人家用现在成的,省了收集这个程序。按照之前的说法,数据库达到TB级别了,再用这个数据库做破解程序,似乎有点过份了,这个程序,估计得是这个世界上最大的一个程序了。

  MD5加密方式现在应当还死不了,用的人多,在没有更安全的加密方式通用以前,MD5还得用着,谁让用户群大呢!

  说了这么多,无非是想提醒大家,个人密码尽量复杂一点,长一点就安全一点,组合多一点就更安全一点,经常更换无规律的密码就更安全了;前提是,别复杂得自己都搞忘了!

  读者浪子投稿

顶一下 ▲()   踩一下 ▼()

相关文章

  1. 1
    xyan   说道:
    salt....salt...咸咸的....
    支持(12反对(7回复
  1. 2
    alex   说道:
    这个解密的网的站的一些信息,你登陆这个MD5解密网站就会在最上面看到: 好像是 有点语法错误
    支持(11反对(7回复
  1. 3
    nicidoggy   说道:
    md5一次再md5一次
    0703 于 2009-10-28 0:38:58 回复
    就是啊。。多么简单a
    支持(9反对(5回复
  1. 4
    日光博客   说道:
    部分可以破解,大部分安全性还是很好的!
    aa 于 2010-5-14 14:14:33 回复
    那不叫破解,叫穷举。
    支持(13反对(9回复
  1. 5
    初学者   说道:
    月光真是博学多才呀!
    支持(9反对(7回复
  1. 6
    Fisher   说道:
    别直接保存密码的md5 hash,而是用salt+原始密码,再进行md5就行了,这样就无法查到了,因为做了salt字典数量就会非常庞大,很难破。
    玩机达人 于 2015-5-10 12:33:12 回复
    第一次加密密码,然后在加密Salt,然后再把两个MD5值再加密,看看这个TB级的数据库能不能查找出来
    支持(10反对(8回复
  1. 7
    Kel   说道:
    不明白md5到底是做什么的
    支持(11反对(9回复
  1. 8
    Faneok   说道:
    如果网站开发者对用户的密码进行二次MD5加密不就可以防止对比破解了。这个对开发者来说只是举手之劳。
    支持(12反对(10回复
  1. 9
    路影微光   说道:
    又来支持月光了,我的小网站也像月光看齐!(好友们也支持支持我啊 哈哈)
    支持(8反对(7回复
  1. 10
    Kel   说道:
    密码设置一般都在11位,看样子以后要加到15位了
    支持(13反对(12回复
  1. 11
    童年   说道:
    话说畸形MD5比较难破解吧
    支持(6反对(5回复
  1. 12
    ABS   说道:
    还是长点好些。。
    支持(8反对(8回复
  1. 13
    sonic   说道:
    不要直接用密码的md5就好了,用二次加密,或者md5算法衍生的其他算法通常就很难破解了
    支持(10反对(10回复
  1. 14
    快乐人世间   说道:
    好像没有什么价值。
    支持(11反对(11回复
  1. 15
    Oliu   说道:
    我常用那个网站的md5解密功能
    支持(9反对(9回复
  1. 16
    蛋疼   说道:
    常用那些解密网站的同学们要注意了,其实好多密码在那些网站的数据库里是没有的,但这些网站都有一个功能,只要你查询的这些密码不在他们的数据库里,在你查询后就会自动的添加进去,而且有些bt的网站还会设为收费查询。所以,没事少去查询,多查一次就是为人家多做一次的贡献而已
    支持(10反对(10回复
  1. 17
    小为   说道:
    经常改密码也是很有必要的,长/乱而易记更好!

    密码安全的问题很值得关注。
    支持(8反对(9回复
  1. 18
    taizi   说道:
    硬伤 md5 是加密么?
    月光挺住,不要堕落呀。
    123 于 2009-10-28 1:15:11 回复
    NI DONG SHEN ME? HEHE!
    Ian 于 2013-8-3 19:10:53 回复
    首先md5肯定不是加密算法。
    md5是我用过的最不安全的摘要算法(散列算法,hash算法)。但只是对付彩虹算法的破解,md5加上盐值就够了。
    只是md5值当中并未包含长度信息,这个可以用ripemd算法解决。
    如果安全性要求高的话,可以使用加了盐值的Whirlpool。
    以上算法php hash()函数都有提供。
    支持(13反对(15回复
  1. 19
    wesai   说道:
    不错,学习了。
    支持(10反对(12回复
  1. 20
    Jetive   说道:
    其实站长完全没必要怕。
    MD5是真正的不可逆算法,像那个网站查出来的,其实是通过记录正向结果而得来的,所以它永远无法反解长密码。
    那么长密码案例,短密码容易记忆,什么办法最好呢?
    简单!在你的网站程序写的时候,把密码两人次md5()就可以了,保证那个网站弄不出来。
    支持(5反对(7回复
  1. 21
    Hell   说道:
    畸形的MD5加密方法也在被应用着,例如DZ 7.0的加随即密钥的算法至今还无破解方法,或一些变形的MD5加密,例如2次加密,以及 取32位之前8后8位组合成16位存储至数据库中,这些都是较BT的加密手段,对付这些加密。 cmd5.com 或 md5.com.cn就显得力不从心了。除非他们加大对畸形MD5加密的覆盖数据量。
    支持(11反对(13回复
  1. 22
    xianstart   说道:
    md5不是通过摘要计算校验值的么?和加密有什么关第?
    支持(8反对(10回复
  1. 23
    faint   说道:
    这位兄台知道什么是md5么?
    拜托,md5只是校验值,解个头啊解密,最多只是对撞,搞个数据和某数据的md5值一样,和加不加密有个鸟关系?
    支持(9反对(11回复
  1. 24
    brisk   说道:
    Z-bolg改的不错! 支持...
    支持(8反对(10回复
  1. 25
    worknc   说道:
    经常看到md5码,但没真正用过
    支持(9反对(12回复
  1. 26
    lurenjia   说道:
    md5是不可逆的。


    因为算法已知,所以字典可以自己做——只要有足够的时间和足够强大的机器。问题的关键不是别人拿到加密过后的密码会怎么破解,而是如何获得这个密码。


    防止碰撞的方法也比较简单:你只要同时使用两种或两种以上的散列算法来验证密码就可以了。除非用碰撞的方法得出原密码,否则那个结果只能对一种算法有效。
    支持(4反对(7回复
  1. 27
    原子   说道:
    md5算是比较安全的了。个人觉得,还是用前缀不断变化的个人使用密码喜欢比较好。
    md5的加密是一种革新,我想,如果要变革,那么一定要革新得更加多!
    支持(8反对(12回复
  1. 28
    成球盘   说道:
    不错,学习了
    支持(7反对(11回复
  1. 29
    月鹏红星   说道:
    写的很好 ,谢谢分享!!!
    支持(9反对(13回复
  1. 30
    园子   说道:
    md5 只是相对比较安全的一种加密方式

    安全性还是不错的~
    支持(6反对(11回复
  1. 31
    Ring   说道:
    怎么这么多人以为CMD5的数据是收集来的,其实他们即使收集也只是一小部分,大部分数据是生成的彩虹表.
    想收集的话难度很大,必须搞到用明码储存的网站,然后自己逐一加密,保存.这样的网站现在满少的
    支持(5反对(10回复
  1. 32
    达因   说道:
    md5 是不可逆的,
    即使是被破解了,也是巧合,
    不同的密码经过md5加密算发 加密后 得到的字符串可能是一样的

    举个简单的例子,
    一个数处以5 取余数
    那么1 、6、11、16.。。。。。。
    他们的的余数都是1
    针对于1这个字符串你在做逆运算, 得到结果就是多了

    所以说 逆运算得到的 密码 不一定对,
    即使对了 也是巧合
    蛋疼 于 2010-8-24 10:21:10 回复
    md5当然是不可逆的,但是却是可以穷举的,只要你有兴趣,有时间,多复杂的密码都有被破解出来的一天。
    这种解密网站的原理很简单,它们把符合一定规则的所有字符串全都生成并进行md5,然后将字符串和md5后的密码全存入数据库,你的查询只是简单的从数据库中找出对应的数据而已,并不是破解,只是另类的一种穷举而已,只不过这种穷举的过程网站已经给你做了,你只是享受了它们的结果。
    支持(10反对(15回复
  1. 33
    salt   说道:
    设计一些salt md5就很难破解,例如MD5(username+干扰字符串+密码),每一个网站、论坛部署时采用不同的干扰字符串(12位以上,大小写数字加符号),同样是admin/123456,计算得到的MD5也完全不同,salt内嵌在程序中,反向攻击很困难。
    salt 于 2009-8-23 16:35:25 回复
    更高级的设计是加入用户激活此密码时的timestamp,即MD5(username+string+password+timestamp),那么即使用户更换新密码与就密码相同,但数据库保存的MD5已经不同了
    支持(6反对(12回复
  1. 34
    Sherman   说道:
    第一次访问月光。留下点足迹
    支持(8反对(14回复
  1. 35
    zhai   说道:
    简单的密码可以通过庞大的数据库来破解, 但是销复杂一点的就不容易破解的了..


    像16位的密码的数据库的话要破解 如果数据库里保存了的话, 都是无法计算机数据位, 硬破解还是相当难
    支持(6反对(14回复
  1. 36
    cssncacssssssssssf   说道:
    用别的加密法加密一次再用MD5加密,500%解密不出来
    支持(6反对(19回复

发表留言