首页 > 其他分享 >四、PasswordEncoder密码解析器详解

四、PasswordEncoder密码解析器详解

时间:2023-03-16 17:11:56浏览次数:44  
标签:解析器 加密 BCryptPasswordEncoder PasswordEncoder 密码 详解 解析

 Spring Security要求容器中必须有PasswordEncoder实例。所以当自定义登录逻辑时要求必须给容器注入PaswordEncoder的bean对象

1.接口介绍

​ encode():把参数按照特定的解析规则进行解析。

matches()验证从存储中获取的编码密码与编码后提交的原始密码是否匹配。如果密码匹配,则返回true;如果不匹配,则返回false。第一个参数表示需要被解析的密码。第二个参数表示存储的密码。

​ upgradeEncoding():如果解析的密码能够再次进行解析且达到更安全的结果则返回true,否则返回false。默认返回false。

2.内置解析器介绍

​ 在Spring Security中内置了很多解析器。

3.BCryptPasswordEncoder简介

​ BCryptPasswordEncoder是Spring Security官方推荐的密码解析器,平时多使用这个解析器。

​ BCryptPasswordEncoder是对bcrypt强散列方法的具体实现。是基于Hash算法实现的单向加密。可以通过strength控制加密强度,默认10.

4.代码演示

​ 在项目src/test/java下新建com.msb.MyTest测试BCryptPasswordEncoder用法。

@SpringBootTest
@RunWith(SpringRunner.class)
public class MyTest {
    @Test
    public void test(){
        //创建解析器
        PasswordEncoder encoder = new BCryptPasswordEncoder();

        //对密码进行加密
        String password = encoder.encode("123");
        System.out.println("------------"+password);

        //判断原字符加密后和内容是否匹配
        boolean result = encoder.matches("123",password);
        System.out.println("============="+result);
    }
}

  

标签:解析器,加密,BCryptPasswordEncoder,PasswordEncoder,密码,详解,解析
From: https://www.cnblogs.com/89564f/p/17223348.html

相关文章

  • 四、PasswordEncoder密码解析器详解
    ​ SpringSecurity要求容器中必须有PasswordEncoder实例。所以当自定义登录逻辑时要求必须给容器注入PaswordEncoder的bean对象1.接口介绍​encode():把参数按照特定......
  • SublimeREPL设置详解——实现代码传递(Eval in REPL)
    1.安装前题:安装packagecontrol,过程省略。windows10,python3.10(自定义的build),Sublimebuild4126。安装:packagecontrol安装sublimeREPL。2.测试2.1运行方......
  • Linux根目录详解
    /  根目录:根目录,文件的最顶端,整个文件系统的根目录/bin  用户二进制文件:存放系统所需的重要命令/sbin  系统二进制文件:存放一些系统管理的命令,一般只能由超级权......
  • wgcloud详解 - 初始添加ping监测正常,过一会又ping不通的问题
    WGCLOUD有个模块【PING监测】,可以监测各种网络设备、网关、链路是否能正常ping通,如果ping不通说明网络不通,或设备已经下线,系统会发送告警通知提醒我在刚开始添加PING监测后,......
  • 前端开发:JS中原型和原型链的使用详解
    前言在前端开发过程中,涉及到JS原理相关的内容也就是常用的几大模块,不仅常用而且很重要,但是涉及到原理的话会有点难懂,尤其是对JS接触不太久的开发者来讲。本篇博文就来分享一......
  • explain详解
    一、explain输出列ColumnMeaning意义idTheidentifierSELECTSELECT的序列号select_typeThetypeSELECTSELECT的类型tableThetablefortheoutput......
  • Mysql——事务隔离级别详解
        ......
  • MySQL三大日志——binlog、redo log和undo log详解
              ......
  • K8S配置文件详解
    apiVersion:v1#【必须】版本号kind:Pod#【必选】Podmetadata:#【必选-Object】元数据name:String#【必选】Pod的名称namespace:String#【必选】Po......
  • Python 中 with 语句的详解
    1.概述在Python中,只要一个对象实现了__enter__和__exit__方法,那么就能使用with语句,该对象也可以称之为上下文管理器。官方文档的相关说明:上下文管理器的语法:......