存储秘密问答 - 哈希或纯文本.

Ton*_*y38 6 php database authentication

我的密码使用sha512,但秘密问题和答案都是纯文本.问题是:我需要散列秘密答案吗?如果是这样的数据类型,它仍然是char(128)?我认为秘密问题必须是纯文本吗?

nic*_*ico 5

只是摆脱秘密问题,他们是一个毫无意义的措施:

  1. 它们不会增加安全性,它们实际上会减少它们,因为它很容易找到答案,特别是因为,正如你所说,围绕谁会使用"你最喜欢的宠物是什么?"会有愚蠢的用法.作为一个"秘密"问题.
  2. 他们可能会感到沮丧,因为在尝试恢复密码时,您可能会略微区别(或大写/小写).
  3. 如果您的密码是经过哈希处理的,您无法将密码返回给用户,您必须向他/她发送一封带有新密码或更改密码的电子邮件,那么为什么不让用户输入他的电子邮件地址首先?
  4. 这只是填写注册时的另一个额外领域.已经太多了......


Pho*_*nix 3

你也不应该真正需要散列。如果用户想通过问题/答案重置密码,则应发送一封包含这样做的链接的电子邮件。如果攻击者设法获得问题/答案,除非他们已经有权访问用户的电子邮件,否则仍然对他们没有帮助,这意味着所有的赌注都已经结束了。如果您愿意,您可以对答案进行哈希处理,并且它们将以与密码相同的方式存储,因为它们最终会以相同的格式存储。

但有一个问题,用户是输入自己的问题还是从列表中进行选择?如果来自列表,为什么不只使用所使用问题的标识符,并将潜在问题放在另一个表中或硬编码到脚本中?