简介

此扩展提供了可用于使用各种散列算法直接或增量处理任意长度消息的函数,包括生成HMAC值和密钥派生,包括HKDFPBKDF2

散列算法大致分为三类,完整的算法列表可在hash_algos()的文档中找到。

  • 校验和算法(例如 "crc32b""adler32"):用于计算校验和,在需要检测传输错误的情况下很有用。它们通常非常快。这些算法通常生成的 value 很容易“猜到”或可以被操纵以创建冲突,因此它们完全不适合加密使用。
  • 非加密算法(例如 xxHash 家族):这些通常用于计算哈希表中的哈希值,因为它们旨在对任意字符串输入产生良好的分布。它们通常也很快,但不适合加密使用。
  • 加密算法(例如 SHA-2 家族):这些旨在生成代表其输入但不可猜到也不易发生冲突的散列值。性能通常是次要考虑因素,但现代硬件通常支持针对这些算法的特殊处理,PHP 尝试在可用时使用这些处理。 NIST 的计算机安全资源中心有 » 对目前美国联邦信息处理标准批准的算法的解释
    警告

    一些早期的加密算法,例如 "md4""md5""sha1",已被证明容易受到碰撞攻击,通常建议不再将它们用于加密应用程序。

有关在处理密码时使用散列函数的最佳实践信息,请参阅 关于安全密码散列的常见问题解答

添加备注

用户贡献的备注

此页面没有用户贡献的备注。
To Top