【发布时间】:2020-02-06 13:22:41
【问题描述】:
我有一个数据库,其中密码存储为 pbkdf2_sha256。 我想创建一个应该创建新密码的工具(在 C# 中)。
我的问题是:如何在 C# 中加密密码? 我找到了一个适合我的Java-Class,但我不能在 C# 中使用这个示例。 有笑点吗?
我也尝试了其他课程,但它们似乎不起作用。
编辑:
我找到了 C# 的 this 类。但是当我调用 ValidatePassword-Method 时,它返回 false。 (密码和哈希是正确的)。
EDIT2: 我还发现了this C# 类,但它似乎不起作用。我做错了什么?
这是我使用的代码:
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=
【问题讨论】:
-
第一个使用SHA1。
标签: c# security sha256 password-encryption pbkdf2