Argon2 v1.3是python模块argon2-cffi
使用的算法。
在文档中,它们声明如下:
“argon2-cfi实现Argon2版本1.3,如:Argon2:用于密码哈希和其他应用程序的内存硬函数。中所述。”
然而,本文档并没有具体说明任何“风味”(i/d/id)的实际用法,它只是解释了差异。
默认情况下,argon2-cffi
使用什么“风味”?是否有一种方法来指定您想要使用的“味道”?
发布于 2022-01-19 13:59:17
从hash
函数在PasswordHasher
类中从argon2-cffi
返回的值判断,可以得出这样的结论:在默认情况下,混合“风味”是使用的。
from argon2 import PasswordHasher
PasswordHasher().hash("foo")
返回:
"$argon2id$v=19$m=65536,t=3,p=4$xIu1KPUI7Ofe6HxYhmbNiA$6q7HjVOe6933Ogaw0f7pLodCdBgJsST8JAszTkv4Jh4"
上述类别的评论证实了这一点:
默认情况下使用Argon2\ *id**,并且总是使用随机salt_进行散列。但只要哈希编码正确,它就可以验证任何类型的Argon2。
更改模块使用的“风味”是通过将类type
的变量PasswordHasher
分配给如下所定义的Type
类完成的:
from argon2 import PasswordHasher, Type
PasswordHasher(type=Type.I).hash("foo") # lib.Argon2_i
PasswordHasher(type=Type.D).hash("foo") # lib.Argon2_d
PasswordHasher(type=Type.ID).hash("foo") # lib.Argon2_id
这些Type
变量中的每一个都引用了相应的argon2库,如注释所示。
https://stackoverflow.com/questions/70769188
复制相似问题