我们应该使用密码重置令牌并将其存储在数据库中吗?

时间:2018-04-05 22:30:50

标签: c# asp.net password-protection

我正在为我的ASP.NET应用程序执行密码重置机制。

我想知道,如果有人访问我的数据库,他们可以轻松阅读密码重置令牌并更改用户'密码也是如此,我不应该使用密码重置令牌#6;然后将它们存储在我的数据库中?

注意:我正在谈论"密码重置令牌"而不是实际的"密码"

3 个答案:

答案 0 :(得分:5)

如果“密码重置令牌”允许某人使用其他明文信息重置密码,那么它实际上与密码和should be treated as such相同。

让它们过期几分钟或几小时,并将它们视为秘密,因为它们是。

答案 1 :(得分:2)

是的,我建议你哈希重置令牌,然后将它们存储在数据库中。

使用它们之后,删除记录也是一种很好的做法。 您可以使用AesCryptoServiceProvider或其他一些加密提供程序来完成这项工作。关于如何使用它们的代码示例很多。

答案 2 :(得分:1)

我建议这样做,并考虑这样做的好习惯。

你应该已经有了相当容易的基础设施,因为你应该已经使用密码。

优点:

  • 实施成本低廉(现有基础设施应该已经存在 地方)
  • 更安全(安全问题的空间更小)
  • 安心