【问题标题】:Generate password with specific salt使用特定的盐生成密码
【发布时间】:2018-11-30 17:35:00
【问题描述】:

我们正在使用 Identity Server 4 进行用户身份验证。

我需要添加一项功能来限制用户重复他们最近 5 个密码中的一个。

要根据他们的历史记录检查新密码,我认为最好的方法是(一次 1 个历史密码)使用历史盐来散列他们的新密码,然后比较输出。

我可以从其哈希中获取每个历史盐,但我不知道如何

  1. 为哈希使用特定的盐
  2. 生成哈希值以与历史哈希值进行比较

我已经检查了http://docs.identityserver.io/en/release/ 的文档,但在那里找不到任何相关内容。

我在正确的轨道上吗?如果是这样,我该怎么做?如果没有,我如何检查以前没有使用过新密码? (无论如何都在最后 5 个以内)

【问题讨论】:

标签: c# asp.net-core-2.0 identityserver4 asp.net-core-webapi


【解决方案1】:

IdentityServer4 不对用户密码或身份验证做任何事情。您是在询问 ASP.Net 身份吗?如果是这样,我建议深入研究 Github 中的代码并覆盖您需要的内容。

至于一般的做法;我会使用一个用用户特定的、不可变的盐加盐的哈希,但只对单独存储在不同表中的历史密码这样做。他们当前的密码应该像往常一样使用随机盐。

【讨论】:

  • Re: 你的第一段,谢谢你,我的假设是错误的。我将了解如何通过 ASP.Net Identity 创建散列。此外,目前所有的盐都是相同的值,所以我认为这是由于某处的某些设置造成的。
  • 我刚刚找到了以下可以用于我需要的东西:Microsoft.AspNetCore.Identity.PasswordVerificationResult VerifyHashedPassword (TUser user, string hashedPassword, string providedPassword);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-21
  • 2013-12-20
  • 1970-01-01
  • 2020-08-29
  • 2015-08-22
  • 2014-11-19
相关资源
最近更新 更多