警惕MD5带来的信息安全问题

1引言

  • 很多同学常用MD5,但并不明白其优缺点,有时用来存密码、有时存证件号、手机号的,其实这样做是有点风险的。具体看下面分析:

2MD5是什么?

  • MD5(Message-Digest Algorithm)相当于一种hash算法,可以快速的计算出字符串(比如手机号、ID号(SFZ)、卡号、密码等)、文件的唯一摘要值,此摘要值相当于某字符串的”指纹“,且此指纹不易被篡改(理论上已经不能保证被篡改了,详见山大王小云教授的研究),实际应用中即可用此指纹定位、标识某字符串、文件。

3安全吗?

  • 上面已经说了此MD5指纹并不易被篡改(这方面本文不做深入探讨),那从另外一个方面考虑,这个指纹会导致信息泄露吗?
    答案是显而易见的,实践中如果是未加盐值的MD5被拿到,其实变相等同于其明文被拿到!

4破解思路

  • 怎么做到的呐?
  • 其实思路很简单,就是把根据规则把常见密码、证件号、手机号等提前生成并入库存储,然后拿到MD5后进行反查即可得到,比如先生成0-99999999的1亿个记录(涵盖了所有的8位数字密码)只要几分钟就能完成。
  • 复杂点的手机号13X,15X,18X,16X等大概有100亿以内记录,耗时数量级大概是小时。
  • 更复杂点的证件号大概2000亿记录,耗时大概数天。
  • 得到这些记录后利用现代的数据库存储技术(MySQL、ES、InfoBright)花费一定的代价即可进行存储并提供查询服务。

5思考

  • 还用MD5保存密码吗?
    这时你应该自己能分析出答案了吧,这也是为什么不能用MD5做密码,理论上8位以内的纯数字,5分钟以内就遍历得到密码明文了!

参考文章:

https://www.jianshu.com/p/c0d2674f974d

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值