代码之家  ›  专栏  ›  技术社区  ›  Svish

我应该使用什么散列算法?[副本]

  •  0
  • Svish  · 技术社区  · 14 年前

    PHP函数 hash_algos()

    [0] => md2
    [1] => md4
    [2] => md5
    [3] => sha1
    [4] => sha256
    [5] => sha384
    [6] => sha512
    [7] => ripemd128
    [8] => ripemd160
    [9] => ripemd256
    [10] => ripemd320
    [11] => whirlpool
    [12] => tiger128,3
    [13] => tiger160,3
    [14] => tiger192,3
    [15] => tiger128,4
    [16] => tiger160,4
    [17] => tiger192,4
    [18] => snefru
    [19] => gost
    [20] => adler32
    [21] => crc32
    [22] => crc32b
    [23] => haval128,3
    [24] => haval160,3
    [25] => haval192,3
    [26] => haval224,3
    [27] => haval256,3
    [28] => haval128,4
    [29] => haval160,4
    [30] => haval192,4
    [31] => haval224,4
    [32] => haval256,4
    [33] => haval128,5
    [34] => haval160,5
    [35] => haval192,5
    [36] => haval224,5
    [37] => haval256,5
    

    我应该用哪一个来做什么和为什么?尤其是,我应该使用哪一个来进行密码散列?

    3 回复  |  直到 14 年前
        1
  •  1
  •   tszming    14 年前

    答案是,您不应该直接使用上述任何哈希算法。既然您使用的是PHP,您可以考虑 phpass公司 http://www.openwall.com/phpass/ .

    PHP社区中有很多关于这个主题的讨论,所以不要重新发明安全性。

    1. http://drupal.org/node/29706
    2. http://core.trac.wordpress.org/ticket/2394 ,
        2
  •  1
  •   Community rohancragg    7 年前

    SHA256或SHA384用于密码散列 . 我听说一些美国组织的政策不允许使用具有更高位长的SHA的软件组件,但这要视情况而定。

    Is MD5 really that bad?

    CRCxx用于校验和,它们不适合散列,因为它们的值范围小得多。

        3
  •  -4
  •   JoshD    14 年前