青青子衿, 悠悠我心, 但为君故, 沉吟至今
« Google AdSense for Maps地图广告百度对于淘宝和支付宝的收录 »

有关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还得用着,谁让用户群大呢!

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

  读者浪子投稿



  除非注明,月光博客文章均为原创,转载请以链接形式标明本文地址

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

    密码安全的问题很值得关注。
  • 2009/8/17 17:49:34   支持(8)反对(9) 回复
  • 18.faint
  • 这位兄台知道什么是md5么?
    拜托,md5只是校验值,解个头啊解密,最多只是对撞,搞个数据和某数据的md5值一样,和加不加密有个鸟关系?
  • 2009/8/22 22:13:56   支持(9)反对(10) 回复
  • 19.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()函数都有提供。
  • 2009/8/16 21:47:03   支持(13)反对(15) 回复
  • 21.Jetive
  • 其实站长完全没必要怕。
    MD5是真正的不可逆算法,像那个网站查出来的,其实是通过记录正向结果而得来的,所以它永远无法反解长密码。
    那么长密码案例,短密码容易记忆,什么办法最好呢?
    简单!在你的网站程序写的时候,把密码两人次md5()就可以了,保证那个网站弄不出来。
  • 2009/8/16 23:26:32   支持(5)反对(7) 回复
  • 22.Hell
  • 畸形的MD5加密方法也在被应用着,例如DZ 7.0的加随即密钥的算法至今还无破解方法,或一些变形的MD5加密,例如2次加密,以及 取32位之前8后8位组合成16位存储至数据库中,这些都是较BT的加密手段,对付这些加密。 cmd5.com 或 md5.com.cn就显得力不从心了。除非他们加大对畸形MD5加密的覆盖数据量。
  • 2009/8/16 23:58:14   支持(11)反对(13) 回复
  • 23.xianstart
  • md5不是通过摘要计算校验值的么?和加密有什么关第?
  • 2009/8/22 10:56:20   支持(8)反对(10) 回复
  • 25.原子
  • md5算是比较安全的了。个人觉得,还是用前缀不断变化的个人使用密码喜欢比较好。
    md5的加密是一种革新,我想,如果要变革,那么一定要革新得更加多!
  • 2009/8/16 23:56:43   支持(8)反对(11) 回复
  • 26.worknc
  • 经常看到md5码,但没真正用过
  • 2009/8/17 5:01:16   支持(9)反对(12) 回复
  • 27.lurenjia
  • md5是不可逆的。


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


    防止碰撞的方法也比较简单:你只要同时使用两种或两种以上的散列算法来验证密码就可以了。除非用碰撞的方法得出原密码,否则那个结果只能对一种算法有效。
  • 2009/8/18 5:03:43   支持(4)反对(7) 回复
  • 29.月鹏红星
  • 写的很好 ,谢谢分享!!!
  • 2011/9/27 11:53:40   支持(9)反对(13) 回复
  • 30.园子
  • md5 只是相对比较安全的一种加密方式

    安全性还是不错的~
  • 2009/8/17 9:15:22   支持(6)反对(11) 回复
  • 31.Ring
  • 怎么这么多人以为CMD5的数据是收集来的,其实他们即使收集也只是一小部分,大部分数据是生成的彩虹表.
    想收集的话难度很大,必须搞到用明码储存的网站,然后自己逐一加密,保存.这样的网站现在满少的
  • 2009/8/18 5:51:09   支持(5)反对(10) 回复
  • 32.salt
  • 设计一些salt md5就很难破解,例如MD5(username+干扰字符串+密码),每一个网站、论坛部署时采用不同的干扰字符串(12位以上,大小写数字加符号),同样是admin/123456,计算得到的MD5也完全不同,salt内嵌在程序中,反向攻击很困难。
    salt 于 2009-8-23 16:35:25 回复
    更高级的设计是加入用户激活此密码时的timestamp,即MD5(username+string+password+timestamp),那么即使用户更换新密码与就密码相同,但数据库保存的MD5已经不同了
  • 2009/8/23 16:31:08   支持(6)反对(12) 回复
  • 33.Sherman
  • 第一次访问月光。留下点足迹
  • 2009/8/28 13:54:53   支持(8)反对(14) 回复
  • 34.达因
  • md5 是不可逆的,
    即使是被破解了,也是巧合,
    不同的密码经过md5加密算发 加密后 得到的字符串可能是一样的

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

    所以说 逆运算得到的 密码 不一定对,
    即使对了 也是巧合
    蛋疼 于 2010-8-24 10:21:10 回复
    md5当然是不可逆的,但是却是可以穷举的,只要你有兴趣,有时间,多复杂的密码都有被破解出来的一天。
    这种解密网站的原理很简单,它们把符合一定规则的所有字符串全都生成并进行md5,然后将字符串和md5后的密码全存入数据库,你的查询只是简单的从数据库中找出对应的数据而已,并不是破解,只是另类的一种穷举而已,只不过这种穷举的过程网站已经给你做了,你只是享受了它们的结果。
  • 2009/8/26 13:31:38   支持(8)反对(15) 回复
  • 35.zhai
  • 简单的密码可以通过庞大的数据库来破解, 但是销复杂一点的就不容易破解的了..


    像16位的密码的数据库的话要破解 如果数据库里保存了的话, 都是无法计算机数据位, 硬破解还是相当难
  • 2009/8/16 23:02:43   支持(6)反对(14) 回复
  • 36.cssncacssssssssssf
  • 用别的加密法加密一次再用MD5加密,500%解密不出来
  • 2009/8/26 18:37:44   支持(6)反对(17) 回复

发表评论:

 请勿发送垃圾信息、广告、推广信息或链接,这样的信息将会被直接删除。

订阅博客

  • 订阅我的博客:订阅我的博客
  • 关注新浪微博:关注新浪微博
  • 关注腾讯微博:关注腾讯微博
  • 关注认证空间:关注QQ空间
  • 通过电子邮件订阅
  • 通过QQ邮件订阅

站内搜索

热文排行


月度排行

本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享. 转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议.
This site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License.