-2

我有一个二进制哈希:

var hash = PasswordHash.ArgonHashBinary(Encoding.ASCII.GetBytes(passwd), salt,StrengthArgon.Interactive)

请告诉我如何转换方法返回的字节数组,ArgonHashBinary()以便我可以使用ArgonHashStringVerify().

PS没有方法可以让我直接从二进制哈希验证密码,即没有ArgonHashBinaryVerify()方法。

人为的示例代码:

var salt = PasswordHash.ArgonGenerateSalt();
var passwd = "ABCD";
var hash = PasswordHash.ArgonHashBinary(Encoding.ASCII.GetBytes(passwd), salt,StrengthArgon.Interactive);

if (ArgonHashStringVerify(hash, passwd))
{
    // password match
}
else 
{
    // error
}
4

1 回答 1

1

ArgonHashString()您与配对ArgonHashStringVerify(),就像在单元测试中的示例中一样:

const string PASSWORD = "gkahjfkjewrykjKJHKJHKJbhuiqyr  8923fhsjfkajwehkjg";
var hash = PasswordHash.ArgonHashString(PASSWORD);

Assert.IsTrue(PasswordHash.ArgonHashStringVerify(hash, PASSWORD));

请注意,它ArgonHashBinary()还有另一个用途:您可以使用它从(可能较弱的)密码生成(强)加密密钥,您将使用它来加密某些内容(例如文件)。所以它不用于密码检查。

于 2018-06-27T12:08:57.630 回答