在php中存储密码的最安全方式

时间:2014-12-23 18:16:20

标签: php variables session-variables password-encryption

我只是想知道这是否安全使用。 (将openssl_random_pseudo_bytes()存储在变量中)

$pass = openssl_random_pseudo_bytes(96);

因为有些人说我不应该在变量中存储密码!

1 个答案:

答案 0 :(得分:0)

我会用Blowfish。它非常安全,附带PHP!

http://php.net/manual/en/function.crypt.php

这很简单,每个使用PHP的服务器都有它 - 唯一的缺点,就像其他高级加密方法一样 - 它可能很慢。但我不担心。

修改

我读了你的编辑,是的,我不认为在_SESSION或变量中存储密码,特别是哈希,因为没有理由。如果你这样做了,如果有人使用攻击来破坏你的一个客户会话怎么办?他们的密码会被盗。另外,你提到的openssl方法底层有OpenSSL,这意味着它和OpenSSL一样容易受到攻击。 OpenSSL过去经历了一些严重的缺陷,可能会再次发生。

只需将加密的密码存储在数据库中,您就可以了。

编辑3

我读了你的评论,我不知道这是你用来加密和存储密码的页面。我们都以为你把密码存储在页面中只是因为。如果您使用此加上Blowfish并将密码存储在数据库中,那么它将是安全的。我认为你只需要担心有人窃取数据库,但如果密码足够大,他们必须拥有大量资源来解密一只河豚。

你做得很好,只需添加河豚,你就会好起来。