这个网站是一个用于生成HMAC哈希值的PHP函数库。它包含一个名为_hash_hmac
的功能函数,可以根据给定的算法、数据和密钥生成HMAC哈希值。
该函数接受四个参数:$algo
表示哈希算法(如’md5’或’sha1’),$data
表示要进行哈希的数据,$key
表示用于生成哈希值的密钥,$raw_output
表示是否以原始二进制格式输出哈希值(默认为false)。
函数首先检查所选算法是否有效,如果无效则返回false。然后根据所选算法选择相应的打包方式(如’md5’对应’H32’,‘sha1’对应’H40’)。接下来,如果密钥长度超过64个字符,将使用指定算法对密钥进行处理。然后将密钥填充到64个字符的长度。
函数使用异或运算符和重复操作创建两个填充字符串$ipad
和$opad
,分别用于HMAC计算中的初始化和最终结果。最后,使用指定算法对填充后的数据进行哈希运算,并将结果与另一个填充字符串进行异或运算,得到最终的HMAC哈希值。
如果$raw_output
参数为true,则函数将以原始二进制格式输出HMAC哈希值;否则,默认情况下将以Base64编码的字符串格式输出。