Механизм проверки бинарного хэша
У меня есть бинарный хэш:
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
}
1 ответ
Решение
Вы пара ArgonHashString()
с ArgonHashStringVerify()
, как в примерах в модульном тесте:
const string PASSWORD = "gkahjfkjewrykjKJHKJHKJbhuiqyr 8923fhsjfkajwehkjg";
var hash = PasswordHash.ArgonHashString(PASSWORD);
Assert.IsTrue(PasswordHash.ArgonHashStringVerify(hash, PASSWORD));
Обратите внимание, что ArgonHashBinary()
имеет другое применение: вы используете его для создания (потенциально слабого) пароля (надежного) ключа шифрования, который вы будете использовать для шифрования чего-либо (например, файла). Так что он не используется для проверки пароля.