是否可以在cookie中存储哈希密码?

Ben*_*Ben 16 security encryption cookies hash

我希望用户能够在我的网站上选择"记住我"框,这样他们每次来都不需要登录.因此,我需要在cookie中存储唯一ID以识别它们.用sha512和PHP中的长盐散列密码并将其存储在cookie中是否安全?如果cookie被盗,他们的密码会有风险吗?显然它必须以某种方式连接到他们的密码,否则如果cookie值被猜测或被盗,用户将无法阻止其他人登录.

另外,建议使用GUID作为唯一标识符吗?

谢谢,本

Gab*_*abe 21

请记住,密码的哈希值实际上与密码相同.窃取哈希的人可以访问用户的帐户,就好像他们窃取了密码一样.因此,建议将用户密码的哈希值存储在cookie中,除非有一些其他信息与用于进行身份验证的cookie一起存储(即双因素身份验证).

  • 哈希密码几乎无法恢复,并且因为很多人也使用相同的密码用于其他网站,这就是暴露一个服务和暴露许多其他网页的凭据之间的区别:) (3认同)
  • 我想知道为什么有人投票支持这个答案. (2认同)
  • 不会投反对票,但我不同意“实际上相同”的部分。大多数登录机制(例如基于表单的身份验证)将需要密码的纯文本版本(当然通过 SSL 发送)才能实际登录,而不是哈希版本。当然,如果他们知道哈希算法,他们就可以使用强力方法向后工作并相当快地创建密码。但是,如果您在服务器端创建了哈希值,那么希望服务器代码是安全的并且它们不知道盐。另外,PiotrK 有一个很好的观点。 (2认同)

Chr*_*ris 12

是一篇关于这个主题的优秀文章.您问题的许多答案都是针对其中列出的技术.


Sam*_*eff 4

好的算法和大盐的风险很低,但为什么要冒不必要的风险呢?

如果您只需要识别用户,则存储可以唯一识别用户的内容,例如 guid 以及其他一些存储的验证码(不是他们的密码,而是一些随机的长字符串)。我不会单独使用 guid,因为它不是一种安全的身份验证方法。

  • “随机长字符串”应该比密码更改时更频繁地过期,最好是在每次登录时。 (4认同)