PHP密码学良好实践?

时间:2012-04-08 14:47:11

标签: php cryptography

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

如果是这种情况,有人能指出PHP当前最新的加密良好做法是什么?我在网上搜索过,但没有发现任何有关日期/潜力的内容。

1 个答案:

答案 0 :(得分:4)

Hash plus salt也已过时,通常不再支持密码哈希方案。并行计算这样的哈希太容易了(即使是单独的每用户盐),资源丰富的攻击者很可能会破坏这样的方案。

您应该使用某种形式的迭代哈希来代替。除了在您的密码中应用salt之外,这种算法还会人为地减慢整个散列过程(加密散列通常设计得尽可能快,同时维持固定的“安全边际”)。达到此目标的合适基元通常被认为是bcrypt,scrypt或PBKDF2算法。有关如何在PHP中使用bcrypt的讨论,请参阅示例this answer