如何针对盐和散列的密码和用户名对用户进行身份验证?

用户名

我正在开发一个.net Web api项目,需要在用户表中存储添加了盐分和哈希值的用户名和密码。

如果用户名和密码字段在用户表中随机散列并且盐存储在用户的同一行中,我将如何验证用户身份?我想念什么吗?似乎我无法找到用户进行密码比较。

大卫·L

它们本身不是随机散列的。它们针对相同的密钥进行哈希处理。结果,要进行身份验证,您将需要对输入的凭据重复进行哈希处理,并将该哈希与用户存储的哈希进行比较。

另一个选择是使用内置的成员资格提供程序为您处理身份验证。

您对散列的实际要求实际上是很难解决的要求。如您所确定的,您将没有什么可用来标识该用户的。结果,您将不得不使用一些排序数据(例如IP,用户代理字符串等)来做出最佳猜测。但是,这将是非常危险的。

最终,用户名用于识别用户身份,而不是对该用户进行身份验证。如果您有从不显示用户名或以其他方式保护用户名的安全要求,请让他们使用其名字或其他标识符登录,以免出现用户名。最终,您必须查找用户记录,并且对用户名进行哈希处理只会增加难度,并且不会为您提供任何真正的安全优势。

其他有价值的安全性阅读可以在这里找到

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Java代码设置基本身份验证(用户名和密码)

使用需要用户名和密码的WebService使用SpringSecurity对用户进行身份验证

在Android中仅使用用户名和密码通过Firestore进行身份验证

我如何使用Spring Security通过ID和密码而不是用户名和密码对用户进行身份验证

如何使用我的公钥和私钥而不是用户名和密码从Git Bash自动向GitHub进行身份验证?

使用节点js,AngularJs和JWT使用用户名和密码进行身份验证

Laravel 5 db:种子用户名和密码,但登录时不进行身份验证

如何在Moya中设置基本身份验证用户名和密码?

如何使用用户名和密码对Kubernetes kubectl进行身份验证?

通过Azure Functions对Azure AD中的用户进行身份验证(验证用户名和密码)

azure-devops-node-api:使用用户名和密码进行身份验证

无法使用从本地文件读取的正确凭据(用户名和密码)对SSH服务器进行身份验证

如何使用Python在Selenium中使用用户名和密码对代理进行身份验证

如何在Spring Security身份验证登录中让用户输入用户名和密码的值

没有用户名和密码的用户身份验证

如何在Laravel身份验证中处理列的自定义名称,用户名和密码

如何执行我自己的身份验证(检查用户键入的用户名和密码)

是否可以仅使用Marketo使用用户名和密码进行OAuth2身份验证?

如何仅使用一个字段进行网页身份验证(而不是用户名和密码)

Varnish 4基本身份验证不断提示输入用户名和密码

如何为基本的HTTP身份验证设置用户名和密码?

使用nodejs,表达和基本身份验证如何获取用户名和密码

在Angular中使用http $进行基本身份验证-传递用户名/密码和grant_type

LDAP 身份验证的用户名和密码

如何使用经过身份验证的用户名和密码离线下载网站?

在 Cassandra 中通过用户名和密码进行身份验证

Github 操作,从机密设置 gem 用户名:请在设置用户名和密码以进行身份验证之前进行 CGI 转义

K8S 上的 Keyclaok:无法使用用户名和密码对用户进行身份验证

Paramiko SFTP 不会使用正确的用户名和密码进行身份验证