PHP实现的增强性mhash函数
今天使用php的加密函数mhash的时候,报错:Fatalerror:Calltoundefinedfunctionmhash()
mhash是php的内置函数但是使用却报错..
一番研究总结两种方法:
1,导入php_mhash.dll扩展文件,除此之外还要导入libmhash.dll(mhash库的载入依赖这个文件),
在Apache的配置文件Httpd.conf中加载 LoadFileC:/php/libmhash.dll”。
2,使用自定义的mhash增强函数。
functionhmac_md5($key,$data) { if(extension_loaded('mhash')) { returnbin2hex(mhash(MHASH_MD5,$data,$key)); }
$b=64; if(strlen($key)>$b) { $key=pack('H*',md5($key)); } $key =str_pad($key,$b,chr(0x00)); $ipad=str_pad('',$b,chr(0x36)); $opad=str_pad('',$b,chr(0x5c));
$k_ipad=$key^$ipad; $k_opad=$key^$opad;
returnmd5($k_opad.pack('H*',md5($k_ipad.$data))); }