数据库关于密码存储
程序员文章站
2022-03-01 19:57:39
...
以前自己写网站玩的时候,真是一点都不考虑安全性,虽然也象征性的md5了一下,然后登陆了也是拿出这个md5值和输入的密码进行md5以后比较,这个方法没什么大问题,除了说md5可能会有冲突之类的情况。但是呢,当时有一个最严重的问题,就是把密码明文也存储了,虽然这个明文对于用户来说永远也使用不到,用户登陆也是和md5以后的密码比较。我也很清楚不应该存储明文的,但是想着存了也无所谓,也不浪费什么空间,完全是在自娱自乐。
前段时间,收到某公司的面试电话,面试官问我,以前是怎么存储用户密码的,我就说原密码加上一个盐值一起hash存储起来的,当然不能说还存储了明文,不然肯定会被喷。但是呢,面试官接着又问,假如现在系统打算检测弱密码,也就是检测出一些常见密码,提醒用户改密码,我一想,这都不是明文了,怎么检测,当时脑袋一抽,就说把明文也存下来不就可以检测出来了,瞬间觉得自己也别牛逼。结果肯定就被喷了,被鄙视了一同,然后就问我数据库存了明文密码会有什么后果?我就巴拉巴拉的说了一堆后果,但是也没有用了。最近反过来想想当时那个问题,还是可以做的,1 系统在用户注册时候就标记密码的强度 , 假如用户已经有了,以前没有标记的话,还有另一种方法 ; 2 建立一个弱密码表, 拿出用户的信息里面的盐值和弱密码表的数据一起走注册时候对密码的hash算法,然后和用户的密码比较,如果相等,不就检测出来弱密码了。