У меня есть база данных, в которой пароли хранятся как pbkdf2_sha256. Я хочу создать инструмент (на С#), который должен создавать новые пароли.
Моя проблема: Как мне зашифровать пароль на C#? Я нашел Java -Class, который у меня работает, но я не могу использовать этот пример в C#. Есть ли аналогичный способ?
Я пробовал и другие классы, но они, похоже, не работают.
EDIT: я нашел этот класс для С#. Но когда я вызываю метод ValidatePassword
, он возвращает false. (Пароль и хэш верны).
EDIT2: я также нашел этот класс С#, но он не работает. Что я сделал не так?
Вот код, который я использую:
var salt = "FbSnXHPo12gb";
var password = "geheim";
var interactions = 12000;
using (var hmac = new HMACSHA256())
{
var df = new Pbkdf2(hmac, password, salt, interactions);
Console.WriteLine(BitConverter.ToString(df.GetBytes(32)));
Console.WriteLine(String.ByteArrayToString(df.GetBytes(32)));
Console.WriteLine(UTF8Encoding.UTF8.GetString(df.GetBytes(32)));
Console.WriteLine(Convert.ToBase64String(df.GetBytes(32)));
}
//hash I should get:
//pbkdf2_sha256$12000$FbSnXHPo12gb$LEpQrzPJXMI0m3tQuIE5mknqCv1GWgT5X2rWyLHN0Xk=
//hash I get:
//Rc8oMeSrbWyIJ+aXvGegFowKcIlwk8eIRyxXUf/a+t0=