我正在尝试在验证库中实现Argon2算法.我希望能够为用户提供一些有用的提示来设置参数.
虽然我理解memory_cost和threads参数如何影响算法,但我似乎无法绕过time_cost参数.
time_cost(整数) - 计算Argon2哈希值所需的最长时间.默认为PASSWORD_ARGON2_DEFAULT_TIME_COST.
讯问1 -默认值为2.它似乎代表一个时间,遗憾的是,单位似乎缺失.是几秒钟?毫秒?
这个SO答案说默认是2 秒.
在第3.1章输入中,这里没有提到时间,只有大量的迭代.
迭代次数
t(用于独立于内存大小调整运行时间)可以是1到2 ^ 32-1之间的任何整数;
与时间相关的值在第9章推荐参数中定义,它说:
计算出
x每个呼叫可以承受的最长时间(以秒为单位)[...]
使用不同的传递次数运行类型
y,内存m和h通道以及线程的方案t.计算最大t运行时间不超过的最大值x.如果超过x甚至t = 1,减少m相应.使用刚确定的值,和
m,哈希所有密码.ht
讯问2 -这是否意味着PHP暴露了时间量x并确定了正确的迭代量t?
定义算法执行时间和迭代次数的时间成本
[...]
时间成本表示将运行哈希算法的次数. …