This article mainly introduces PHP implementation of the enhanced Mhash function, using the default Mhash function times wrong, found two solutions, need friends can refer to the next
Today, using PHP's encryption function Mhash, the error: Fatal error:call to undefined function mhash ()
Mhash is PHP's built-in function but the error is not used.
The research sums up two ways:
1, import the Php_mhash.dll extension file, in addition to import the Libmhash.dll (Mhash Library's load dependency this file),
Load LoadFile C:/php/libmhash.dll in the Apache configuration file httpd.conf.
2, use a custom mhash enhancement function.
The code is as follows:
function Hmac_md5 ($key, $data)
{
if (extension_loaded (' Mhash '))
{
Return Bin2Hex (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;
return MD5 ($k _opad. Pack (' h* ', MD5 ($k _ipad. $data));
}
The parameters $key and $data in the HMAC_MD5 function correspond mhash the original 3,2 parameters.
Both of these methods can be used to successfully use the PHP Mhash encryption function