提问人:Madara's Ghost 提问时间:4/8/2012 最后编辑:Nick JohnsonMadara's Ghost 更新时间:4/11/2012 访问量:315
PHP密码学的良好实践?
PHP Cryptography Good Practices?
问:
所以我听说了,既过时了,又可能坏了。我听说这也不是一个可行的解决方案。md5()
sha1()
crypt()
如果是这样的话,谁能指出PHP中当前最新的密码学良好实践是什么?我在网上搜索过,但没有找到任何最新/潜在的内容。
答:
4赞
emboss
4/9/2012
#1
单独的哈希加盐也已经过时了,通常不再在密码哈希方案中得到认可。并行计算此类哈希值太容易了(即使使用单个每用户盐),足智多谋的攻击者最有可能破坏这种方案。
您应该改用某种形式的迭代哈希。除了对密码应用盐分外,这种算法还人为地减慢了整个哈希过程的速度(加密哈希通常被设计为尽可能快,同时保持固定的“安全裕度”)。达到这个目标的合适基元通常被认为是 bcrypt、scrypt 或 PBKDF2 算法。例如,有关如何在 PHP 中使用 bcrypt 的讨论,请参阅此答案。
评论
0赞
Madara's Ghost
4/9/2012
那么循环遍历哈希算法大约 100,000 次听起来不错吗?
1赞
emboss
4/9/2012
更好,但也不完美。使用我提到的三个之一,它们是由该领域的专家专门为此目的设计的。使用它们而不是滚动自己的方案,很容易出错。
0赞
CodesInChaos
4/9/2012
盐也与良好的散列方案一起使用。它们还不够。所以你的第一句话很有误导性。
0赞
emboss
4/9/2012
@CodeInChaos 这是真的,这是误导性的。我应该更好地将其表述为“仅盐”。将更新,感谢您的评论!
评论