gpt4 book ai didi

asp.net-mvc - 将哈希安全列添加到 ASP.NET Identity (MVC 5)

转载 作者:行者123 更新时间:2023-12-02 13:44:52 27 4
gpt4 key购买 nike

我们正在使用身份框架 2.1.0,并计划向用户注册页面添加安全问题和答案。我们将有一个单独的问题表,并希望向 AspNetUsers 添加 2 列

  1. 安全问题 ID
  2. 安全答案

我想保持“SecurityAnswer”列散列,因为我们在此表中已经有一个 SecurityStamp 列,我们可以使用它进行散列和反散列吗?

如果是,如何?如果否,有哪些替代方案?

非常感谢您的帮助,感谢任何引用、指点。

最佳答案

要散列您的安全答案,您可以使用UserManager.PasswordHasher:

var manager = // get instance of UserManager

var hashedAnswer = manager.PasswordHasher.HashPassword("Very secret Answer to my secrect question");

// ... here store you hashed answer in database

当用户返回并尝试重置密码时,获取存储的答案哈希并将其与用户新提供的答案进行比较:

PasswordVerificationResult isValid = manager.PasswordHasher.VerifyHashedPassword(hashedAnswer, "Hello, this is the wrong answer");

if(PasswordVerificationResult.Success)
{
// reset password, answer is correct
}

类似这样的事情。

但是,我不喜欢 secret 问题/答案。从安全角度来看,它们存在固有缺陷。您的答案将成为另一个密码,并且这个密码比您的普通密码更容易被猜测,因为问题提供了提示。我建议阅读 Troy Hunt about password resetting 的优秀文章- 它涉及 secret 问题/答案的主题。

关于asp.net-mvc - 将哈希安全列添加到 ASP.NET Identity (MVC 5),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25782373/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com