所需架包
<dependency>
<groupId>de.mkammerer</groupId>
<artifactId>argon2-jvm</artifactId>
<version>2.4</version>
</dependency>
代码工具类
import org.springframework.security.crypto.password.PasswordEncoder;
import de.mkammerer.argon2.Argon2;
import de.mkammerer.argon2.Argon2Factory;
/**
* @Description TODO
* @Author ***
* @Date 2020/2/27 12:37
* @Version 1.0
**/
public class Argon2PasswordEncoder implements PasswordEncoder {
private static final Argon2 ARGON2 = Argon2Factory.create();
private static final int ITERATIONS = 2;
private static final int MEMORY= 65536;
private static final int PARALLELISM = 1;
@Override
public String encode(CharSequence rawPassword) {
final String hash = ARGON2.hash(ITERATIONS, MEMORY, PARALLELISM, rawPassword.toString());
return hash;
}
@Override
public boolean matches(CharSequence rawPassword, String encodedPassword) {
return ARGON2.verify(encodedPassword, rawPassword.toString());
}
public static void main(String[] args){
PasswordEncoder passwordEncoder=new Argon2PasswordEncoder();
String hashedPassword=passwordEncoder.encode("123456");
System.out.println(hashedPassword);
}
}