如何根据salted和哈希密码和用户名验证用户身份?

时间:2014-12-14 20:44:40

标签: c# encryption hash

我正在开发.net web api项目,需要将用户名和密码存储在用户表中并进行哈希处理。

如果用户表中的用户名和密码字段是随机哈希值,并且盐存储在用户的同一行中,我将如何验证用户身份?我错过了什么吗?好像我无法找到用户进行密码比较。

1 个答案:

答案 0 :(得分:2)

它们本身不是随机散列的。他们被对着同一把钥匙。因此,要进行身份验证,您需要对输入的凭据重复散列过程,并将该散列值与用户存储的散列值进行比较。

另一个选项是使用内置的Membership提供程序为您处理身份验证。

实际要求散列两者实际上是一个非常难以解决的要求。如您所述,您无需识别该用户。因此,您不得不求助于使用某些排序数据(如IP,用户代理字符串等)来进行最佳猜测。然而,这将是非常危险的。

在一天结束时,用户名用于标识用户是谁,而不是对该用户进行身份验证。如果您的安全要求永远不会显示用户名或以其他方式保护用户名,请显示他们使用其名字或其他标识符登录,以便不公开用户名。在一天结束时,您必须找到用户记录并对用户名进行哈希处理,这样才会更难以为您提供任何真正的安全保障。

可以找到其他有价值的安全性阅读here

相关问题