【问题标题】:Mechanism for verifying binary hash验证二进制哈希的机制
【发布时间】:2018-06-27 11:45:09
【问题描述】:

我有一个二进制哈希:

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

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

附:没有方法可以让我直接从二进制哈希验证密码,即没有 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
}

【问题讨论】:

标签: c# .net cryptography libsodium argon


【解决方案1】:

您将ArgonHashString()ArgonHashStringVerify() 配对,如unit test 中的示例:

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

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

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

【讨论】:

    猜你喜欢
    • 2010-10-04
    • 2019-08-02
    • 2015-06-07
    • 1970-01-01
    • 1970-01-01
    • 2013-10-22
    • 2012-08-21
    • 2020-02-06
    • 1970-01-01
    相关资源
    最近更新 更多