6

我正在编写一个脚本,需要保存密码。出于开发目的,我一直在使用该crypt()功能,因为它简单且可用。现在我已经完成了大部分工作,我想用更好、更一致的东西来替换它。

我的一些担忧是:

  • 并非每个系统都支持所有算法
  • 有时盐会预先添加到结果中(似乎是一个安全问题)

我想要一些适用于 PHP 4.3+ 的东西。

有什么可用的,还是我应该坚持crypt()?我考虑过使用md5(md5($password).$salt). 感谢您的洞察力。

4

2 回答 2

6

没有错crypt

如果您的服务器不支持,请使用另一台服务器。

你不应该使用MD5来散列密码(或者甚至是 SHA1)

使用 bcrypt(的河豚方法crypt)或 pbkdf2

这里有一个 pbkdf2 的实现: Encrypting Passwords with PHP for Storage Using the RSA PBKDF2 Standard

有关原因和方式的更多信息:

于 2011-12-28T22:59:48.660 回答
4

首先:预先添加盐不是安全问题。拥有每个密码的盐是一个很大的好处,将它与密码一起存储是完全可以的。

现在:只要您不将密码哈希从一个系统传输到另一个系统,并且后者不支持第一个系统的默认算法,根据定义不会发生任何坏事。自 PHP 5.3 起,PHP 中有内置算法,例如 Blowfish,保证可用。

于 2011-12-28T23:01:33.373 回答