PHP / WEB:如何存储散列密码

时间:2015-02-21 05:08:24

标签: php security hash sha256

我理解如何在php页面上散列/ salt / etc密码。但是,我不知道如何实际存储这些密码

例如,如果我只需要让PHP文档验证另一个密码(存储在服务器上),那么如何实际存储需要验证的密码呢?如果我只是将它放在一个文件中,有人可以阅读源PHP来查找该文件,读取该文件,然后发送带有该哈希密码的假POST。如果我将它腌制,他们只需要阅读源代码然后删除盐。他们能看到PHP源吗?

希望这是有道理的。我只需要知道如何在我的Web服务器上存储散列/盐渍密码。我可以把它们放在.txt中吗?如果有人读取.txt会发生什么,他们不能发送假的POST而服务器会接受它?

提前致谢!

1 个答案:

答案 0 :(得分:1)

  1. 请勿将它们放在.txt文件中。在Web可访问的目录中至少没有一个。我建议将它们存储在数据库中。

  2. 如果有人确实可以访问您的密码哈希值,他们就无法使用它来登录,至少不能直接登录,因为您在验证密码时会重新哈希哈希,从而产生不同的密码 - 匹配哈希。但是,访问密码哈希确实可以更容易通过字典或暴力破解实际密码,因为检查密码是否匹配可以在本地完成,不需要向服务器发出请求。出于这个原因,请务必保持哈希值相当安全,如果它们确实泄露,请强制用户重置密码。

  3. 顺便说一句,您不必担心用户能够查看您的PHP源代码,除非他们能够在您的代码中找到泄露源代码的漏洞。