Heim  >  Artikel  >  php教程  >  PHP实现的增强性mhash函数

PHP实现的增强性mhash函数

WBOY
WBOYOriginal
2016-06-13 09:03:071076Durchsuche

PHP实现的增强性mhash函数

   这篇文章主要介绍了PHP实现的增强性mhash函数,使用默认mhash函数时报错,找到了两个解决方法,需要的朋友可以参考下

  今天使用php的加密函数mhash 的时候,报错: Fatal error : Call to undefined function mhash()

  mhash是php的内置函数但是使用却报错..

  一番研究总结两种方法:

  1,导入php_mhash.dll扩展文件,除此之外还要导入 libmhash.dll (mhash 库的载入依赖这个文件) ,

  在 Apache 的配置文件 Httpd.conf 中加载 LoadFile C:/php/libmhash.dll” 。

  2,使用自定义的mhash增强函数。

   代码如下:

  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)));

  }

  hmac_md5 函数里的参数$key和$data对应mhash原有的3,2参数。

  这两个方法都可以顺利的使用上php 的mhash 加密函数

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn