简介

该扩展提供了一些函数,可用于使用多种散列算法对任意长度的消息进行直接或增量处理,包括生成 HMAC 值以及包括 HKDFPBKDF2 在内的密钥派生。

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

  • 校验和算法(例如 "crc32b""adler32"):用于计算校验和,适用于检测传输错误等场景。这类算法通常速度非常快。但其生成的值往往容易被“猜测”或操纵以制造冲突,因此完全不适合用于加密用途。
  • 非加密算法(例如 xxHash 系列):这些算法通常用于计算散列表的散列值,因为它们旨在为任意字符串输入提供良好的分布性。这些算法通常速度较快,但同样不适合用于加密用途。
  • 加密算法(例如 SHA-2 系列):这些算法旨在生成能够反映输入特征但不可猜测且不易发生冲突的散列值。性能通常是次要考虑因素,但现代硬件通常对这些算法提供专门支持,在可用时 PHP 会尝试利用这些支持。 NIST(美国国家标准与技术研究院)的计算机安全资源中心提供了» 关于美国联邦信息处理标准当前批准算法的说明
    警告

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

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

添加备注

用户贡献的备注

此页面尚无用户贡献的备注。
To Top