在 Java 中设置 Argon2 算法类型



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

我想对密码进行编码。我正在使用弹簧安全罐。使用以下代码创建编码器

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

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

您可以使用 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();

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

最新更新