在.NET Core 6.0中安全地将密码保存在数据库中



我正在使用C#开发ASP.NET Core 6 Web API。目前,我的控制器中的一个函数将用户提交的纯文本密码与其他信息一起保存到Users表中。

如何安全地保存密码而不是纯文本?我正在寻找一个简单但安全的解决方案。有没有什么函数可以简单地生成一个唯一的密码哈希,然后我可以将其保存到数据库中?

例如:

user.Password = hash(request.password);

我搜索了一些更老的类似问题,但由于所有的答案似乎都是几年前的事了,我觉得在寻找更多关于这方面的最新想法时,这可能是值得的。

这是用于用户注册的,因此我需要将用户名和密码发送到API注册,该API应将其安全存储在数据库中

在这种情况下,请使用ASP.NET标识。它为您提供数据库中的用户表,以及用于创建和登录用户的C#API。

然后让用户使用API调用注册:创建一个接受注册请求的控制器和适当的模型,并调用UserManager.CreateAsync(model.Email, model.Password)

请确保对端点进行速率限制和监控,以防止滥用,因为您没有像浏览器UI那样的XHR或CAPTHHA功能。

最新更新