【问题标题】:Microsoft Identity password hash is different for the same passwordMicrosoft Identity 密码哈希对于相同的密码是不同的
【发布时间】:2023-03-15 20:25:01
【问题描述】:

我正在使用 ASP.NET MVC 5 和 microsoft identity。

我有一个名为 AspNetUsers 的表。

它有一个名为“PasswordHash”的字段。

我用相同的密码创建了 2 个用户,但密码哈希不同。

为什么我不明白它是如何工作的?它使用机器密钥吗?

如果我将服务器部署在云中,使用相同的数据库会发生什么。

身份密码比较是否还会继续在那里发挥作用?

【问题讨论】:

  • 这是出于安全考虑而设计的。阅读:en.wikipedia.org/wiki/Salt_(cryptography)
  • 那么盐在哪里,我可以更改吗?如果我部署在另一台服务器上,数据库密码仍然有效。

标签: c# asp.net asp.net-identity


【解决方案1】:

Identity 将密码哈希和盐放在数据库中的同一字段中。密码哈希总是 32 字节长,盐总是 16 字节长。所以当涉及到密码验证时,Identity 总是知道什么是盐,什么是实际的哈希值。您可以通过查看source code 来验证这一点。

而且由于每次执行的盐总是不同的,所以附加了盐的密码总是会产生不同的哈希结果。

【讨论】:

  • 网址不再有效
  • @AmrElgarhy 更新了链接。感谢您的提醒!
猜你喜欢
  • 1970-01-01
  • 2015-02-25
  • 1970-01-01
  • 2013-11-26
  • 2019-05-08
  • 2017-11-15
  • 1970-01-01
  • 1970-01-01
  • 2012-03-19
相关资源
最近更新 更多