0

Argon2 默认使用 Argon2id。如何以编程方式在 Java 中设置不同的算法类型?我的意思是,如何提及我的程序应该在 Java 中使用 Argon2i 或 Argon2d?

我想对密码进行编码。我正在使用 Spring Security jar。使用以下代码创建编码器

Argon2PasswordEncoder encoder = new Argon2PasswordEncoder(DEFAULT_SALT_LENGTH, DEFAULT_HASH_LENGTH, DEFAULT_PARALLELISM, 512, 1000);

默认情况下使用 argon2id。想知道如何设置不同的算法。

4

1 回答 1

0

您可以使用Password4j

int memory = 2048;
int iterations = 10;
int parallelism = 1;
int outputLength = 128;
Argon2 variant = Argon2.D;

Argon2Function argon2 = Argon2Function.getInstance(memory, iterations, parallelism, outputLength, variant);

Hash hash = Password.hash(pwd).addRandomSalt().with(argon2);

您也可以将配置存储在属性文件中,因此您只需编写

Hash hash = Password.hash(pwd).addRandomSalt().withArgon2();

您可以在官方文档中找到更多信息。

于 2021-05-09T20:00:43.333 回答