验证二进制散列的机制
Mechanism for verifying binary hash
我有一个二进制散列:
var hash = PasswordHash.ArgonHashBinary(Encoding.ASCII.GetBytes(passwd), salt,StrengthArgon.Interactive)
请告诉我如何转换方法 ArgonHashBinary()
返回的字节数组,以便我可以使用 ArgonHashStringVerify()
.
验证我的密码
P.S。没有方法可以让我直接从二进制哈希验证密码,即没有 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
}
您将 ArgonHashString()
与 ArgonHashStringVerify()
配对,就像 unit test 中的示例一样:
const string PASSWORD = "gkahjfkjewrykjKJHKJHKJbhuiqyr 8923fhsjfkajwehkjg";
var hash = PasswordHash.ArgonHashString(PASSWORD);
Assert.IsTrue(PasswordHash.ArgonHashStringVerify(hash, PASSWORD));
请注意 ArgonHashBinary()
还有另一个用途:您可以使用它从(可能较弱的)密码生成一个(强)加密密钥,您将使用该密钥来加密某些内容(例如文件)。所以它不用于密码检查。
我有一个二进制散列:
var hash = PasswordHash.ArgonHashBinary(Encoding.ASCII.GetBytes(passwd), salt,StrengthArgon.Interactive)
请告诉我如何转换方法 ArgonHashBinary()
返回的字节数组,以便我可以使用 ArgonHashStringVerify()
.
P.S。没有方法可以让我直接从二进制哈希验证密码,即没有 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
}
您将 ArgonHashString()
与 ArgonHashStringVerify()
配对,就像 unit test 中的示例一样:
const string PASSWORD = "gkahjfkjewrykjKJHKJHKJbhuiqyr 8923fhsjfkajwehkjg";
var hash = PasswordHash.ArgonHashString(PASSWORD);
Assert.IsTrue(PasswordHash.ArgonHashStringVerify(hash, PASSWORD));
请注意 ArgonHashBinary()
还有另一个用途:您可以使用它从(可能较弱的)密码生成一个(强)加密密钥,您将使用该密钥来加密某些内容(例如文件)。所以它不用于密码检查。