crypt()的替代方案

时间:2011-12-28 22:54:50

标签: php crypt

我正在编写脚本并需要保存密码。出于开发目的,我一直在使用crypt()函数,因为它很简单且可用。现在我已经完成了,我想用一些更好,更一致的东西来代替它。

我所担心的一些问题是:

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

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

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

2 个答案:

答案 0 :(得分:6)

crypt

没有任何问题

如果您的服务器不支持,请使用其他服务器。

从不 使用MD5进行散列密码(甚至是SHA1)

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

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

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

答案 1 :(得分:4)

首先:预先加盐不是安全问题。拥有每个密码的盐是一个很大的好东西,并且它与pw一起存放是完全可以的。

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