2

我想在我的系统中使用 Argon2 作为密码的散列算法,我试图找到正确的参数来设置它。我正在使用 PHP。

在测试一些变体时,我试图了解使用 Argon2 对内存的影响。

文档提到了这一点:

memory_cost (integer) - Maximum memory (in kibibytes) that may be used to compute the Argon2 hash. Defaults to PASSWORD_ARGON2_DEFAULT_MEMORY_COST.

但是,使用 PHP 的函数memory_get_peak_usage,我的脚本消耗的内存量似乎从未受到影响。这是一个例子:

$hash = password_hash('password1', PASSWORD_ARGON2I, ['memory_cost' => (1024*100), 'time_cost' => 20, 'threads' => 2]); // Should require 100MiB

$memory_peak = memory_get_peak_usage(true);

echo $memory_peak / (1024*1024); // To have the result in MiB

在我的系统上,这需要大约 0.5 秒才能执行,但内存使用量始终为 2MiB。

有人可以解释为什么 PHP 内存使用不受使用memory_costArgon2 参数的影响吗?

4

0 回答 0