Механизм проверки бинарного хэша

У меня есть бинарный хэш:

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() имеет другое применение: вы используете его для создания (потенциально слабого) пароля (надежного) ключа шифрования, который вы будете использовать для шифрования чего-либо (например, файла). Так что он не используется для проверки пароля.

Другие вопросы по тегам