【发布时间】:2019-02-15 20:52:26
【问题描述】:
请不要将此标记为重复,因为我已经检查了多个帖子,但没有一个对我有帮助。
Asp.net MVC - How to hash password
我正在建立一个有登录页面的网站,我阅读了这篇文章
https://www.codeproject.com/Articles/704865/Salted-Password-Hashing-Doing-it-Right#normalhashing
关于如何确保我的登录安全。
现在我了解到,每次注册时我都必须创建 CSPRNG(加密安全伪随机数生成器) 并将其添加到用户提交的密码中,然后对该组合进行哈希处理并将其存储在数据库中,并为每个用户存储盐,因为它是每个用户的随机盐。我的问题是什么是最简单和最简单的方法。
在我的控制器中,我通过这种方法获取用户名和密码
public JsonResult Login(LoginModel data)
{
//some code...
//...
}
我的登录模型包含
public class LoginModel
{
public string Username { get; set; }
public string Password { get; set; }
}
所以我得到了用户名和密码,例如 (string a = data.Username, ...)
我已经将此添加到我的项目中,但我不知道如何从这里继续
using System.Security.Cryptography;
我肯定知道如何在数据库中保存我只是想知道,如何制作随机盐(可能使用 RNGCryptoServiceProvider),以及如何将其添加到用户密码中,然后对最终结果进行哈希处理。 感谢您的帮助。
【问题讨论】:
-
你的 .Net 框架版本是什么?
-
我觉得吹镖在你链接到的第二篇文章中的回答涵盖了所有这些,并附有一个完整的例子(吹镖在安全性方面非常好;也许随着时间的推移唯一改变的关键是加密算法的选择)(注意:
RNGCryptoServiceProvider上的GetBytes可以给你随机盐) -
@karthickj25 4.5
-
@MarcGravell 我要再检查一次。
标签: c# asp.net-mvc encryption