1

使用 PHP 在数据库表中存储密码的最安全和最有效的方法是什么?

到目前为止,我已经使用md5()sha256算法来存储密码,如果最终有人获得对数据库的访问权限,则可以使用彩虹表轻松破解它们。

4

2 回答 2

3

Bcrypt 通常被认为是最安全的选择。

如果您使用的是 PHP 5.5,您可以使用新的密码哈希 API 使其更易于使用。Hashing Passwords with the PHP 5.5 Password Hashing API有一个不错的教程。

使用 bcrypt 是目前公认的对密码进行哈希处理的最佳实践,但大量开发人员仍在使用 MD5 和 SHA1 等较旧且较弱的算法。一些开发人员在散列时甚至不使用盐。PHP 5.5 中的新哈希 API 旨在吸引人们对 bcrypt 的关注,同时隐藏其复杂性。

于 2013-09-29T21:41:04.993 回答
3

使用bcryptwith hash 是目前使用 PHP 做的最好的事情。 不要使用md5orsha1函数,因为它们是较旧且较弱的算法。

从 PHP 5.5 开始,您可以使用新password_hashpassword_verifypassword_needs_rehashpassword_get_info. 您可以在此处阅读有关新哈希函数的更多信息:

密码哈希 API [.. 使] 以安全的方式轻松创建和管理密码

还:

这个扩展从 PHP 5.5.0 开始可用,但也有一个 » 用户态 PHP >= 5.3.7 的实现。

于 2013-09-29T21:44:06.213 回答