add argon2id digest
This commit is contained in:
@@ -1,5 +1,8 @@
|
||||
package com.imyeyu.utils;
|
||||
|
||||
import de.mkammerer.argon2.Argon2;
|
||||
import de.mkammerer.argon2.Argon2Factory;
|
||||
|
||||
import java.math.BigInteger;
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
@@ -80,4 +83,18 @@ public class Digest {
|
||||
}
|
||||
return result.toString();
|
||||
}
|
||||
|
||||
public static String argon2id(String password) {
|
||||
return argon2id(10, 65536, 1, password);
|
||||
}
|
||||
|
||||
public static String argon2id(int iterations, int memory, int parallelism, String password) {
|
||||
Argon2 argon2id = Argon2Factory.create(Argon2Factory.Argon2Types.ARGON2id);
|
||||
return argon2id.hash(iterations, memory, parallelism, password.toCharArray());
|
||||
}
|
||||
|
||||
public static boolean argon2idVerify(String passwordHash, String password) {
|
||||
Argon2 argon2id = Argon2Factory.create(Argon2Factory.Argon2Types.ARGON2id);
|
||||
return argon2id.verify(passwordHash, password.toCharArray());
|
||||
}
|
||||
}
|
||||
|
||||
22
src/test/java/test/TestDigest.java
Normal file
22
src/test/java/test/TestDigest.java
Normal file
@@ -0,0 +1,22 @@
|
||||
package test;
|
||||
|
||||
import com.imyeyu.utils.Digest;
|
||||
import com.imyeyu.utils.Time;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
/**
|
||||
* @author 夜雨
|
||||
* @since 2025-10-30 16:55
|
||||
*/
|
||||
public class TestDigest {
|
||||
|
||||
@Test
|
||||
public void testArgon2id() {
|
||||
String pwd = "hello argon";
|
||||
long start = Time.now();
|
||||
String hash = Digest.argon2id(pwd);
|
||||
System.out.println("digest time: " + (Time.now() - start) + "ms");
|
||||
System.out.println(hash);
|
||||
assert Digest.argon2idVerify(hash, pwd);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user