哪个是PHP中最安全的密码哈希算法?

Ind*_*ema 2 php security encryption algorithm hash

哪个是PHP中最安全的密码哈希算法?

速度是无关紧要的,因为我在一段固定的时间内迭代哈希(而不是固定的迭代次数).我感兴趣的是数学实力.

我的直觉告诉我它是漩涡,是最大和最慢的一群.那还是SHA-512.哪位专家推荐?

有没有其他算法提供超过512位的哈希?

Gol*_*rol 6

使用该功能password_hash().如果您允许(通过指定PASSWORD_DEFAULT),它将选择推荐的算法,该算法目前是BCrypt.如果算法更改,则不必更改代码.如果您愿意,也可以使用常量明确选择此算法PASSWORD_BCRYPT,但这反映了在未来版本中可用时自动更新为更好算法的意图.

您可以使用它password_verify()来验证密码.

PHP会将使用过的算法添加到哈希值以及盐中,因此它将知道验证所需要知道的所有内容.这样,当新算法在较新版本的PHP中可用时,它们将自动使用,并且这些密码将具有更强的哈希值.

password_needs_rehash()如果默认值发生变化,您可以使用它来检查是否需要重新设置密码.

如果密码有效,您可以将其重新存储并存储.这样,当用户登录时,您将使用较弱的哈希值更新旧密码.

  • 为了跟进这一点,您使用 BCrypt 等算法的原因是它专为密码保护而设计,与 SHA 算法不同。它专门设计为计算速度很慢。这对用户登录来说不是问题,但它比暴力破解 SHA 慢得多。 (2认同)