如何存储密码重置问题的答案?

时间:2014-06-03 14:49:41

标签: security passwords normalization

我仍然是许多最佳做法的新手,这就是我提问的原因。

我目前的项目是密码重置系统。 现在我将问题存储在每个问题的ID表中。 我正在考虑将问题ID和问题的答案存储在与用户数据相同的表中。

我的用户表格列如下所示:

ID | FName | LName |电子邮件|通过| ResQuestions | ResAnswers

或者我应该创建一个单独的表来存储信息。

UserID | ResQuestions | ResAnswers

我应该担心有一张凌乱的桌子? 或者我应该放弃整个问题系统并仅根据电子邮件玻璃化进行重置?

注意:密码和答案都是加密的。

评论总是比投票更有帮助,谢谢阅读。

1 个答案:

答案 0 :(得分:2)

避免混乱表的原因通常与性能有关,或者为了避免数据冗余。如果您不担心它,那么非规范化不应该是一个大问题,只需确保相应地记录设计决策以帮助维护代码。

现在规范化表格可以让您更轻松地实现多问题挑战逻辑,在这种情况下,用户会被问到多个问题来验证身份。

就选择电子邮件验证与挑战问题而言,由于已经为问题编写了逻辑,我会坚持这一点。您可以随时增加问题库并删除“简单”问题。从池中猜出来帮助提高帐户安全性。尽量避免朋友可能容易知道的问题(宠物,出生地等)。