我应该在这种情况下哈希密码吗?

时间:2009-12-28 10:50:21

标签: hash passwords

我的网站不包含过于敏感的数据。我正在考虑存储密码,因为如果用户希望通过电子邮件接收密码(如果他们丢失了密码),那么我就可以将密码发送给他们,而不是做任何繁琐而烦人的事情,比如发送他们创建了一个新密码(它也无效)。

我应该按原样存储它们吗?

9 个答案:

答案 0 :(得分:24)

不,你应该哈希它们。大多数用户在多个站点上拥有相同的密码,因此即使您的站点不是太敏感,也可能有其他站点具有相同的用户名和密码,这些站点更敏感。

如果用户忘记了密码,请向他们发送一个新密码。

答案 1 :(得分:9)

为什么会陷入两难境地?您可能不应该自己开发帐户管理系统。采取一些标准的密码管理组件,并节省自己的调试和安全漏洞。

答案 2 :(得分:8)

默认答案是YES,HASH(AND SALT)PASSWORDS,用尖叫的帽子。

原因是大多数用户对他们登录的所有网站使用相同的密码,因此如果您的网站遭到入侵,那么所有这些密码都是公开的。

答案 3 :(得分:7)

密码敏感数据 - 人们在网站上使用它们,您不希望它泄露或可见 - 甚至不是您或您的程序员。

答案 4 :(得分:4)

我之前运行过一个网站,我可以建议:不要存储纯文本密码。许多用户在多个应用程序中使用相同的密码,如果您的网站遭到入侵,他们会责怪您。

如果您的用户丢失密码,请将密码散列并发送一个新的密码,并使用到期时间。

答案 5 :(得分:2)

没有。从您网站的角度来看,密码可能并不重要,但天真的用户倾向于重复使用他们的密码。例如,您可能持有用户的银行帐户密码。您甚至应该应用随散列密码存储的随机盐(通常作为前缀字符串),以便甚至无法跨站点或帐户识别相同的密码。

答案 6 :(得分:2)

永远不要将您的密码存储在数据库中。 请告诉您开发的其他网站,以便我从不在其上创建帐户。

答案 7 :(得分:1)

使用openid(http://openid.net/)并且不用担心密码管理。

答案 8 :(得分:0)

绝对哈希,没有理由不这样做。您甚至可以在用户的​​浏览器中加密密码,只需传输哈希值,例如with the code used here