密码存储的发展史

纯文本密码存储阶段

最早期的时候,使用纯文本存储密码,不过存储密码的文件是加了密。

但是容易到SQl注入的风险。


加密算法密码存储阶段

后来使用以SHA-256为代表的HASH加密算法存储密码

不过也容易受到类似彩虹表这样的算法的攻击。


加盐算法密码存储阶段

再到后来,以SHA-256为代表,使用加盐和Hash结合创建一个唯一的值,倒是有效避免了类似彩虹表这样的lookup tables的攻击。

但是由于硬件的不断发展,每秒能执行上十亿次的恐怖算力,使得这种加密算发也不能再说是安全的。


自适应单项函数密码存储阶段

现在就发展了自适应单项函数的密码加密阶段,这种算法更加复杂,以至于加密验证都需要接近1s的时间。

image-20220306163601575

因此,使用类似以BCryptPasswordEncoder为代表的算法时,不得不减少我们进行加密和验密的次数 ,这也解释了为啥要使用access_tokcen存储在session中进行传递身份的方式进行验证。

参考

Password Storage History

posted @ 2022-03-06 19:10  車轱辘  阅读(232)  评论(0编辑  收藏  举报