加密方法
- Hash算法
- 密码加盐
- 自适应单向函数
常见实现类
- BCryptPasswordEncoder
- Argon2PasswordEncoder
- Pbkdf2PasswordEncoder
- scryptPasswordEncoder
DelegatingPasswordEncoder
DelegatingPasswordEncoder是一个代理类,而并非一种全新的密码加密方案。
DelegatingPasswordEncoder主要用来代理不同的密码加密方案。为什么采用pelegatingPasswordEncoder而不是某一个具体加密方式作为默认的密码加密方案呢?主要考虑了如下三方面的因素:
(1)兼容性:使用DelegatingPasswordEncoder可以帮助许多使用旧密码加密方式的系统顺利迁移到SpringSecurity中,它允许在同一个系统中同时存在多种不同的密码加密方案。
(2)便捷性:密码存储的最佳方案不可能一直不变,如果使用DelegatingPasswordEncoder作为默认的密码加密方案,当需要修改加密方案时,只需要修改很小一部分代码就可以实现。
(3)稳定性:作为一个框架,Spring Security不能经常进行重大更改,而使用Delegating
PasswordEncoder可以方便地对密码进行升级((自动从一个加密方案升级到另外一个加密方案)。