加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

Spring Security 如何实现多种加密计划共存

发布时间:2022-01-15 09:33:50 所属栏目:安全 来源:互联网
导读:如何在 Spring Security 中,让多种不同的密码加密方案并存。 为什么要加密?常见的加密算法等等这些问题我就不再赘述了,大家可以参考之前的:Spring Boot 中密码加密的两种姿势!,咱们直接来看今天的正文。 1.PasswordEncoder;在 Spring Security 中,跟密
   如何在 Spring Security 中,让多种不同的密码加密方案并存。
 
   为什么要加密?常见的加密算法等等这些问题我就不再赘述了,大家可以参考之前的:Spring Boot 中密码加密的两种姿势!,咱们直接来看今天的正文。
 
1.PasswordEncoder;在 Spring Security 中,跟密码加密/校验相关的事情,都是由 PasswordEncoder 来主导的,PasswordEncoder 拥有众多的实现类:
 
这些实现类,有的已经过期了,有的用处不大。对于我们而言,最常用的莫过于 BCryptPasswordEncoder。
 
PasswordEncoder 本身是一个接口,里边只有三个方法:encode 方法用来对密码进行加密。matches 方法用来对密码进行比对。upgradeEncoding 表示是否需要对密码进行再次加密以使得密码更加安全,默认为 false。PasswordEncoder 的实现类,则具体实现了这些方法。
 
2.PasswordEncoder 在哪里起作用
对于我们开发者而言,我们通常都是在 SecurityConfig 中配置一个 PasswordEncoder 的实例,类似下面这样:剩下的事情,都是由系统调用的。今天我们就来揭开系统调用的神秘面纱!我们一起来看下系统到底是怎么调用的!
 
首先,松哥在前面的文章中和大家提到过,Spring Security 中,如果使用用户名/密码的方式登录,密码是在 DaoAuthenticationProvider 中进行校验的,大家可以参考:SpringSecurity 自定义认证逻辑的两种方式(高级玩法)。

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读