不确定它是否是正确的输出,但是当我在java中使用氩气哈希密码时,我得到输出:
$argon2i$v=19$m=512,t=2,p=2$J1w6n04CBSEA8p0cCqeK7A$tb1ihqduhONYZN0+ldKkw980Y7h7ZJ2OcDTsXyIMibo
而python给了我:
argon2$argon2i$v=19$m=512,t=2,p=2$TjZiM3ZTdGFIQUlZ$CocCpAIXQc722ndqkFZWxw
参数看起来相同:i,512,2,p = 2
任何能告诉我如何获得相同长度输出的argon2大师?喜欢玩java,因为它是一个简单的ussd应用程序。
答案 0 :(得分:0)
字符串中的p=2
后面有一个美元符号。这个美元符号和下一个美元符号之间的字符串是哈希值。第二个美元符号后面是 Argon2 派生的实际密钥。在Java示例(经过base64解码后)中,哈希长度为32
。但是,在Python中,哈希长度为16
(这是Python中的默认值)。因此,在Python中,如果您这样做:
import argon2
argon2.hash_password(b"Password",memory_cost=512,time_cost=2,parallelism=2,hash_len=32)
然后,您将具有与Java示例中相同的长度哈希。另外,如果您为Python和Java实现指定了相同的符号,则哈希值应彼此相同(假设两者之间的参数相同)。