0

所以我听说过md5(),而且sha1()都过时了,而且可能坏了。我听说这crypt()也不是一个可行的解决方案。

如果是这种情况,谁能指出 PHP 中当前最新的密码学良好实践是什么?我在网上搜索过,但没有找到任何最新/潜在的东西。

4

1 回答 1

4

单独的哈希加盐也已过时,并且通常不再在密码哈希方案中得到认可。并行计算这样的哈希值太容易了(即使是每个用户的盐),一个足智多谋的攻击者最有可能破坏这样的方案。

您应该改用某种形式的迭代散列。除了将盐应用于您的密码之外,这种算法还人为地减慢了整个散列过程(加密散列通常被设计为尽可能快,同时保持固定的“安全裕度”)。达到此目标的合适原语通常被认为是 bcrypt、scrypt 或 PBKDF2 算法。有关如何在 PHP 中使用 bcrypt 的讨论,请参见例如此答案。

于 2012-04-08T16:59:14.723 回答