I've got a database where passwords are stored as pbkdf2_sha256. I want to create a tool (in C#) which should create new passwords.
My problem is: How can I encrypt the password in C#? I found a Java-Class which works for me, but I can not use this sample in C#. Is there a smilar way?
I tried also other classes but they do not seem to work.
EDIT: I found this class for C#. But when I call the ValidatePassword-Method it returns false. (Password and Hash are correct).
EDIT2: I found also this C# class but it doesn't seem to work. What did I wrong?
Here is the code which I use:
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=