在SpringBoot1.5之前使用的是MD5进行加密处理,但是在SpringBoot2.0之后废弃了该加密算法,采用了BCryptPasswordEncoder
BCryptPasswordEncoder中连个常用的方法
加密
BCryptPasswordEncoder encode = new BCryptPasswordEncoder();
encode.encode(password);
比较(第一个是用户数据的密码,第二个是数据库中存的密码)
matches(CharSequence rawPassword, String encodedPassword)
测试代码
package com.tedu;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
public class BCryptPasswordEncoderTest {
public static void main(String[] args) {
String password = "admin";//模拟用户输入的密码
BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder();
String hash = bCryptPasswordEncoder.encode(password);
System.out.println("hash: "+hash);
boolean flag = bCryptPasswordEncoder.matches(password, hash);
System.out.println(flag);
}
}
控制台输出如下
hash: $2a$10$8BE