
SpringSecurity中的强哈希加密算法BCryptPasswordEncoder
当时密码加密我还是停留在盐,第一次用Spring Security的时候,接触到了 BCryptPasswordEncoder 这个加密,当时非常好奇这个算法,因为它每次加密的密码都是不一样的,动态的
拆开发现,两个关键方法 BCrypt.hashpw和BCrypt.gensalt
仔细看能发现这个加密算法是用的强哈希+盐+密钥,默认情况是的密码,因为使用到了哈希,所以是密码是不可逆的,这样就算你密码泄露了别人也不知道密码明文是什么
看gensalt
有没有很熟悉 这个盐和生成的密码前缀是不是有点像,生成了一个带盐的哈希
再看hashpw 里面一大堆代码都是在校验密文
注意看,这里已经开始截取上面生成的哈希盐了
String real_salt = salt.substring(off + 3, off + 25);
最后工序就是解码base64和编码64
然后生成的结果就是我们现在看见的,同一个密码,每一次都不一样的密文
这个是一个非常强大的好用的加密方法,反正我是比较喜欢的!因为都不需要在数据库里把盐给存起来
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 七龙
评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果