我正在使用带有 EF Core 的 ASP.NET Core 2.2。我有一个User看起来像这样的类:public class User : IdentityUser{ public string FirstName { get; set; } public string LastName { get; set; }}我想添加一个PIN属性,作为额外安全操作的辅助密码。用户登录系统,但如果他想做一些更特别的事情(比如汇款),系统会提示他输入他的 PIN。我的问题是散列字符串的最简单方法是什么,所以我不会将 PIN 以纯文本形式存储在数据库中?
1 回答

慕婉清6462132
TA贡献1804条经验 获得超2个赞
您可以使用IPasswordHasher 接口,当用户注册时,您可以创建将存储在数据库中的密码哈希(PIN 属性),当您需要验证时,对提供的密码/PIN 进行哈希处理并将其与存储的哈希进行比较.
例如,使用 DI 来涉及扩展:
public readonly IPasswordHasher<ApplicationUser> _passwordHasher;
public HomeController(IPasswordHasher<ApplicationUser> passwordHasher )
{
_passwordHasher = passwordHasher;
}
创建散列密码:
var hasedPassword = _passwordHasher.HashPassword(null,"Password");
验证 :
var successResult = _passwordHasher.VerifyHashedPassword(null, hasedPassword , "Password");
您还可以参考文档:ASP.NET Core 中的哈希密码。
- 1 回答
- 0 关注
- 61 浏览
添加回答
举报
0/150
提交
取消