【发布时间】:2016-11-01 04:38:25
【问题描述】:
我需要在数据库中存储用户名和密码。密码显然应该加密。我们确实有一些旧代码,我们的一些其他网站使用这些代码来加密密码,但我不确定这是否安全。
我正在研究使用 Asp.net Core PasswordHasher 类。
我是这样使用的:
PasswordHasher<string> pw = new PasswordHasher<string>();
string s1 = pw.HashPassword("Bob", "Apple");
string s2 = pw.HashPassword("Bob", "Apple");
var v1 = pw.VerifyHashedPassword("Bob", s1, "Apple");
var v2 = pw.VerifyHashedPassword("Bob", s2, "Apple");
v1 和 v2 都成功了,但由于某种原因 s1 和 s2 不相等(可能是随机盐?)。
PasswordHasher 是否以任何方式与机器绑定?应用程序将在网络场中运行,因此它应该独立于机器并在场中的所有机器上进行验证。
这是一种加密安全的密码存储方式吗?
【问题讨论】:
标签: c# asp.net-core