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