Spring Security默认使用bCryptPasswordEncoder进行加密,因项目需要
,使用内置的argon2PasswordEncoder进行加密,经测试比bcrypt算法要慢。
需要引入Bouncy Castle Provider依赖,否则会找不到
org.bouncycastle.crypto
这个包;
<!-- https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk15on -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.70</version>
</dependency>
//加密
Argon2PasswordEncoder argon2PasswordEncoder = new Argon2PasswordEncoder();
String pw = argon2PasswordEncoder.encode("123456");
//校验
boolean b = argon2PasswordEncoder.matches("123456","$argon2id$v=19$m=4096,t=3,p=1$jUuSVpSYTWWVg3gaqdmZIw$dj5+Xh24Ifc2uUI2AVtGvLnQhMRW60DCQ4Dk8mdUaBY");