Security 2011年的PHP密码哈希

Security 2011年的PHP密码哈希,security,hash,passwords,salt,Security,Hash,Passwords,Salt,我花了几个小时浏览了很多关于PHP/MySQL中最安全的密码处理方法的帖子,然后提出了这个问题。大多数答案似乎都已经过时了,人们所指向的链接也是如此。许多人推荐md5和sha-1 我们都知道,MD5和SHA-1不再值得使用,因为它们已经被颠倒了,而且还有许多数据库已经建立了数百万个MD5/SHA字符串。现在,很明显,你可以用盐来解决这个问题,我打算这样做 然而,我最近开始和惠而浦一起玩,它看起来更加安全,而且是最新的。我认为whirlpool+salt对密码有足够的保护,对吗 我实际上在考虑这样

我花了几个小时浏览了很多关于PHP/MySQL中最安全的密码处理方法的帖子,然后提出了这个问题。大多数答案似乎都已经过时了,人们所指向的链接也是如此。许多人推荐md5和sha-1

我们都知道,MD5和SHA-1不再值得使用,因为它们已经被颠倒了,而且还有许多数据库已经建立了数百万个MD5/SHA字符串。现在,很明显,你可以用盐来解决这个问题,我打算这样做

然而,我最近开始和惠而浦一起玩,它看起来更加安全,而且是最新的。我认为whirlpool+salt对密码有足够的保护,对吗

我实际上在考虑这样的事情:

<?php
    $static_salt = 'some_static_salt_string_hard_coded';
    $password = 'some_password_here';
    $salt = 'unique_salt_generated_here';

    $encoded = hash('whirlpool', $static_salt.$password.$salt);
?>


你觉得怎么样?过度杀戮还是合理的?

这就足够了(但是,静态硬编码的salt没有意义)。为什么不使用SHA256呢?漩涡很少使用。

这就足够了(但是,静态硬编码的盐没有任何意义)。为什么不使用SHA256呢?惠而浦很少使用。

对于大多数应用来说,这可能已经足够好了

但是,如果数据库泄漏,盐就变得(几乎)无用了——包括配置文件泄漏时的静态数据库。它们是针对彩虹表的一种很好的保护,但是现在更容易使用一堆GPU来强制执行给定的哈希


伊姆霍,目前。显然,PHP5.3+支持它,以及如何使用它。

对于大多数应用程序来说,这可能已经足够好了

但是,如果数据库泄漏,盐就变得(几乎)无用了——包括配置文件泄漏时的静态数据库。它们是针对彩虹表的一种很好的保护,但是现在更容易使用一堆GPU来强制执行给定的哈希


伊姆霍,目前。显然,PHP 5.3+中支持它,并支持如何使用它。

如果不更广泛地考虑威胁模型和实现细节,讨论特定算法的优点是毫无意义的

是的,惠而浦在作为散列的有效性方面确实有一些优势,但正如Nickolay所说的那样,这可能具有欺骗性,而且由于它的使用范围较低。但还有其他考虑因素——出于某些目的,为每个帐户存储128个字符的字符串可能是不必要的开销。对于每个人来说,这都是一个软件支持什么的问题(有些人可能希望使用相同的帐户记录来控制对不同系统的访问)

归根结底,无论您的哈希算法有多复杂都无关紧要:

  • 用户可以自由选择错误的、可猜测的密码
  • 用户将对不同的服务使用相同的密码

  • 如果它对你有用-那就太好了-但是没有通用的解决方案。

    如果不更广泛地考虑威胁模型和实现细节,讨论特定算法的优点就毫无意义

    是的,惠而浦在作为散列的有效性方面确实有一些优势,但正如Nickolay所说的那样,这可能具有欺骗性,而且由于它的使用范围较低。但还有其他考虑因素——出于某些目的,为每个帐户存储128个字符的字符串可能是不必要的开销。对于每个人来说,这都是一个软件支持什么的问题(有些人可能希望使用相同的帐户记录来控制对不同系统的访问)

    归根结底,无论您的哈希算法有多复杂都无关紧要:

  • 用户可以自由选择错误的、可猜测的密码
  • 用户将对不同的服务使用相同的密码

  • 如果它对你有用-那就太好了-但是没有通用的解决方案。

    哈希算法是无法逆转的。您只能针对它们进行测试。另请参阅Openwall的(PHPass)。它的可移植性强,可抵御多种常见的用户密码攻击。编写框架的人(SolarDesigner)就是编写框架并担任该框架法官的那个人。因此,他对密码攻击略知一二。哈希算法是无法逆转的。您只能针对它们进行测试。另请参阅Openwall的(PHPass)。它的可移植性强,可抵御多种常见的用户密码攻击。编写框架的人(SolarDesigner)就是编写框架并担任该框架法官的那个人。因此,他对密码攻击略知一二。我使用惠而浦的主要想法是,它有点失败者的味道。从好的方面来说,因为它没有被过多地使用,所以不太可能有公开的漏洞。另一方面,它可能会带来未来的支持和/或安全问题。使用/测试的密码/哈希越少,隐藏漏洞的可能性就越大:)所有广泛使用的哈希都经过全世界社区的测试,因此,有更多的机会不会发现重大漏洞。我使用惠而浦的主要想法是,它有点弱者。从好的方面来说,因为它没有被过多地使用,所以不太可能有公开的漏洞。另一方面,它可能会带来未来的支持和/或安全问题。使用/测试的密码/哈希越少,隐藏漏洞的可能性就越大:)所有广泛使用的哈希都经过全世界社区的测试,因此没有发现重大漏洞的可能性就越大。回答正确。如果你不得不问,答案是“使用bcrypt”。正确答案。如果你不得不问,答案是“使用bcrypt”。