小编Ind*_*igo的帖子

PHP7中的Argon2算法:了解time_cost参数

我正在尝试在验证库中实现Argon2算法.我希望能够为用户提供一些有用的提示来设置参数.

虽然我理解memory_costthreads参数如何影响算法,但我似乎无法绕过time_cost参数.

PHP文档说的是什么:

time_cost(整数) - 计算Argon2哈希值所需的最长时间.默认为PASSWORD_ARGON2_DEFAULT_TIME_COST.

讯问1 -默认值为2.它似乎代表一个时间,遗憾的是,单位似乎缺失.是几秒钟?毫秒?

这个SO答案说默认是2 .

什么Argon2规格说:

在第3.1章输入中,这里没有提到时间,只有大量的迭代.

迭代次数t(用于独立于内存大小调整运行时间)可以是1到2 ^ 32-1之间的任何整数;

与时间相关的值在第9章推荐参数中定义,它说:

计算出x每个呼叫可以承受的最长时间(以秒为单位)

[...]

使用不同的传递次数运行类型y,内存mh通道以及线程的方案t.计算最大t运行时间不超过的最大值x.如果超过x甚至t = 1,减少m相应.

使用刚确定的值,和m,哈希所有密码.ht

讯问2 -这是否意味着PHP暴露了时间量x并确定了正确的迭代量t

PHP RFC说的是什么:

定义算法执行时间和迭代次数的时间成本

[...]

时间成本表示将运行哈希算法的次数. …

php password-hash php-password-hash argon2-ffi

15
推荐指数
1
解决办法
642
查看次数