我正在为我的ASP.NET应用程序执行密码重置机制。
我想知道,如果有人访问我的数据库,他们可以轻松阅读密码重置令牌并更改用户'密码也是如此,我不应该使用密码重置令牌#6;然后将它们存储在我的数据库中?
注意:我正在谈论"密码重置令牌"而不是实际的"密码"
答案 0 :(得分:5)
如果“密码重置令牌”允许某人使用其他明文信息重置密码,那么它实际上与密码和should be treated as such相同。
让它们过期几分钟或几小时,并将它们视为秘密,因为它们是。
答案 1 :(得分:2)
是的,我建议你哈希重置令牌,然后将它们存储在数据库中。
使用它们之后,删除记录也是一种很好的做法。 您可以使用AesCryptoServiceProvider或其他一些加密提供程序来完成这项工作。关于如何使用它们的代码示例很多。
答案 2 :(得分:1)
我建议这样做,并考虑这样做的好习惯。
你应该已经有了相当容易的基础设施,因为你应该已经使用密码。
优点: