闲扯一下:京东数据库泄露事件

就不用专业术语了,反正我也不是转业的,何必装?

曾几何时,我疯狂注册了很多论坛,网站,为了方便记忆,我索性将所有用户名和密码都能成一样的,相信很多人都和我差不多,后来很多网站出现了安全泄露问题,比如早期的CSDN,腾讯,还有更多,懒得搜索了.导致密码泄露,后面的故事就不说了.

然后,说说MD5吧.What's MD5?MD5算法是不可逆的,为什么呢?因为它用的是信息摘要算法,比如123,先进行摘要采样,比如变成了1(实际肯定不可能这么简单).天生就是不可逆的,中间丢失了元数据.大概如下图所示:

所以,很多网站都采用这种方案.安全得很.理论上是非常安全的,但如果稍微动下脑筋,方案就出来了,虽然有点傻,但就是可行.

我既然不能反推回去,那么我直接加密123这个字段,我也能得到MD5啊,然后直接用自己生成的MD5和泄露数据库的MD5做匹配,如果能够匹配上,那我们自然就能够知道明文密码.这就是彩虹表,生成一堆弱密码,MD5加密后的一个KV键值对.流程大概如下图:

所以,衍生出了盐值,怎么工作的呢?这个看策略,也可以自己写策略,我们下面来举个例子吧,text表示要加密的字段,salt表示随机生成的盐值,textWithSalt表示加盐后的字段

text=123

salt=abc

textWithSalt=123abc或者abc123,或者1a2c3b

textWithSalt的策略,完全可以自己写,框架也有提供,而且现在安全框架一般都支持循环加密,相信,如果很多网站开启循环加密,并且循环次数再次根据盐值特征而定(比如中间做一次AES加密,正好得到char数组,巴拉巴拉巴拉).我相信,这才是牢不可破的密码.就算有内鬼泄露了整套加密策略,破解难度也非常非常大.

 

转载于:https://my.oschina.net/vright/blog/803945

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值