该扩展提供了一些函数,可用于使用多种散列算法对任意长度的消息进行直接或增量处理,包括生成 HMAC 值以及包括 HKDF 和 PBKDF2 在内的密钥派生。
散列算法大致分为三类,完整算法列表可在 hash_algos() 的文档中找到。
"crc32b"
或 "adler32"
):用于计算校验和,适用于检测传输错误等场景。这类算法通常速度非常快。但其生成的值往往容易被“猜测”或操纵以制造冲突,因此完全不适合用于加密用途。
一些早期的加密算法,例如 "md4"
、"md5"
和
"sha1"
,已证明容易受到碰撞攻击,通常建议不再将其用于加密应用。
另请参阅关于安全密码散列的常见问题解答,以获取在处理密码时使用散列函数的最佳实践信息。