php自己的哈希框架比phpass更好

Esp*_*pen 1 php hash

直到现在,我还没有使用它,我一直在使用在phpass找到的hasher.然后我读了另一篇文章," 忘记密码页面,创建生成的密码以通过电子邮件发送给用户. ",这里是由nageeb编写的stackoverflow .

摘自他的帖子:

这是我使用的一步一步的方法:

用户创建密码(通过注册表单)一个函数创建一个随机盐然后加密密码,在这种情况下,使用SHA256算法并使用随机创建的盐.

$ password_salt = bin2hex(mcrypt_create_iv(32,MCRYPT_DEV_URANDOM));

$ password_hash = hash('sha256',$ salt.$ password);

将$ password_hash和$ password_salt保存到users表.这些将在以后用于在用户尝试将来登录时进行身份验证.

当用户登录时,检查用户名/电子邮件/登录名,如果找到,则从users表中获取哈希值和salt,并将db中的密码哈希值与执行相同函数返回的哈希值进行比较,这些哈希值作为密码输入.

$ salt = $ user_record ['password_salt'];

$ entered_hash = hash('sha256',$ salt.$ entered_pa​​ssword);

在这里看起来像php具有所有散列需求的本机函数.这让我觉得它一定是更好的.我应该停止使用phpass并开始使用php哈希框架吗?

vst*_*stm 6

简而言之:,如果您已经在使用phpass,请不要停止使用phpass.

如果没有其他原因不使用它作为"它没有内置到PHP中"那么你应该坚持使用phpass,因为它只是做了一点点"哈希"密码:

  • 它试图使用河豚进行散列,因为它比计算成本更高sha*,因此更难用蛮力破解
  • 如果它必须回到md5()它,它会多次调用以"模仿"昂贵.

您可以使用PHP的散列机制来做到这一点,但这就像重新发明轮子一样.