Php 哪个哈希算法对密码最安全?

Php 哪个哈希算法对密码最安全?,php,security,Php,Security,据介绍,有一种php哈希方法:hash。它支持以下所有方法,但我想知道,什么是绝对最安全的密码哈希方法 Results: (in microseconds) 1. md4 5307.912 2. md5 6890.058 3. crc32b 7298.946 4. crc32

据介绍,有一种php哈希方法:hash。它支持以下所有方法,但我想知道,什么是绝对最安全的密码哈希方法

Results: (in microseconds)
   1.  md4                           5307.912
   2.  md5                           6890.058
   3.  crc32b                        7298.946
   4.  crc32                         7561.922
   5.  sha1                          8886.098
   6.  tiger128,3                    11054.992
   7.  haval192,3                    11132.955
   8.  haval224,3                    11160.135
   9.  tiger160,3                    11162.996
  10.  haval160,3                    11242.151
  11.  haval256,3                    11327.981
  12.  tiger192,3                    11630.058
  13.  haval128,3                    11880.874
  14.  tiger192,4                    14776.945
  15.  tiger128,4                    14871.12
  16.  tiger160,4                    14946.937
  17.  haval160,4                    15661.954
  18.  haval192,4                    15717.029
  19.  haval256,4                    15759.944
  20.  adler32                       15796.184
  21.  haval128,4                    15887.022
  22.  haval224,4                    16047.954
  23.  ripemd256                     16245.126
  24.  haval160,5                    17818.927
  25.  haval128,5                    17887.115
  26.  haval224,5                    18085.002
  27.  haval192,5                    18135.07
  28.  haval256,5                    18678.903
  29.  sha256                        19020.08
  30.  ripemd128                     20671.844
  31.  ripemd160                     21853.923
  32.  ripemd320                     22425.889
  33.  sha384                        45102.119
  34.  sha512                        45655.965
  35.  gost                          57237.148
  36.  whirlpool                     64682.96
  37.  snefru                        80352.783
  38.  md2                           705397.844
以上都没有。 你应该这样做。

以上都不需要。 你应该

什么是绝对最安全的密码哈希方法

回答这个问题的前提是:绝对最安全的可能包括:

首先,使用HMAC和HSM管理的密钥, 然后是散列,一旦找到了获胜者,并且在现实世界和同行评议中暴露了5-10年。 在此之前,最安全的可能是:

如上所述的HSM,以及 这是一个很好的选择。 然而,实际上密码散列并不是主要问题,仅仅用任何一种“好”的解决方案进行散列就足够了。好的解决办法是:

BCrypt, PBKDF2和HMAC以及SHA256或512。 许多人也认为ScRyPt是一个强有力的选择,尽管有些人认为它很幼稚。 对于以上两种情况,你不应该滚动你自己的作文。您应该始终使用一个成熟、经过良好测试和审查的库,用于长期密码存储。密码散列不仅仅是关于使用BCrypt或PBKDF2,您还需要一个组合,其中包含字符编码、salt、迭代计数/成本因子等的合理默认值

什么是绝对最安全的密码哈希方法

回答这个问题的前提是:绝对最安全的可能包括:

首先,使用HMAC和HSM管理的密钥, 然后是散列,一旦找到了获胜者,并且在现实世界和同行评议中暴露了5-10年。 在此之前,最安全的可能是:

如上所述的HSM,以及 这是一个很好的选择。 然而,实际上密码散列并不是主要问题,仅仅用任何一种“好”的解决方案进行散列就足够了。好的解决办法是:

BCrypt, PBKDF2和HMAC以及SHA256或512。 许多人也认为ScRyPt是一个强有力的选择,尽管有些人认为它很幼稚。
对于以上两种情况,你不应该滚动你自己的作文。您应该始终使用一个成熟、经过良好测试和审查的库,用于长期密码存储。密码散列不仅仅是关于使用BCrypt或PBKDF2,您还需要一个具有字符编码、salt、迭代计数/成本因子等合理默认值的组合。

如果我是正确的,它只是一个包含文件?@user2058041:听起来不错。我不使用PHP,所以我不确定+1,尽管有其他选择,如PHP绑定上的scrypt不确定,但考虑到scrypt根本不能防止字典攻击,而且对于暴力强制,大部分取决于密码强度。。当您计算破解bcrypt哈希所需的时间时,您假设密码很长且完全随机,而大多数情况下并非如此。用户通常会创建糟糕的密码,并且使用字典结合暴力强制并不需要很长时间。如果我是正确的,那么这只是一个包含文件?@user2058041:听起来不错。我不使用PHP,所以我不确定+1,尽管有其他选择,如PHP绑定上的scrypt不确定,但考虑到scrypt根本不能防止字典攻击,而且对于暴力强制,大部分取决于密码强度。。当您计算破解bcrypt哈希所需的时间时,您假设密码很长且完全随机,而大多数情况下并非如此。用户通常会创建糟糕的密码,而使用字典结合暴力破解根本不需要很长时间。上述所有密码的根本问题在于,它们是为了快速而设计的,或者更确切地说,不是为了其他目的而设计的。对于密码等,哈希函数在计算上应该相对昂贵,并且不可并行化。我建议不要编写自己的密码库;这很难做到正确,这只是提示。上述所有密码的根本问题是它们设计得很快,或者更确切地说,不是以其他方式设计的。对于密码等,哈希函数在计算上应该相对昂贵,并且不可并行化。我建议不要编写自己的密码库;很难做到正确,这只是提示。