PHP实现的增强性mhash函数


Posted in PHP onMay 27, 2015

今天使用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 加密函数

PHP 相关文章推荐
一个PHP数组应该有多大的分析
Jul 30 PHP
php Smarty初体验二 获取配置信息
Aug 08 PHP
php将textarea数据提交到mysql出现很多空格的解决方法
Dec 19 PHP
php程序总是提示验证码输入有误解决方案
Jan 07 PHP
PHP的PDO操作简单示例
Mar 30 PHP
基于Swoole实现PHP与websocket聊天室
Aug 03 PHP
mysql alter table命令修改表结构实例详解
Sep 24 PHP
CentOS系统中PHP安装扩展的方式汇总
Apr 09 PHP
php中时间函数date及常用的时间计算
May 12 PHP
利用Laravel事件系统如何实现登录日志的记录详解
May 20 PHP
PHP判断一个数组是另一个数组子集的方法详解
Jul 31 PHP
PHP抽象类和接口用法实例详解
Jul 20 PHP
PHP验证信用卡卡号是否正确函数
May 27 #PHP
PHP的伪随机数与真随机数详解
May 27 #PHP
php实现window平台的checkdnsrr函数
May 27 #PHP
PHP实现恶意DDOS攻击避免带宽占用问题方法
May 27 #PHP
PHP简单实现HTTP和HTTPS跨域共享session解决办法
May 27 #PHP
PHP实现即时输出、实时输出内容方法
May 27 #PHP
PHP ajax 异步执行不等待执行结果的处理方法
May 27 #PHP
You might like
Zend公司全球首推PHP认证
2006/10/09 PHP
IIS6.0 开启Gzip方法及PHP Gzip函数分享
2014/06/08 PHP
PHP正则替换函数preg_replace和preg_replace_callback使用总结
2014/09/22 PHP
php反射类ReflectionClass用法分析
2016/05/12 PHP
淘宝搜索框效果实现分析
2011/03/05 Javascript
JS判断元素为数字的奇异写法分享
2012/08/01 Javascript
Javascript 实现复制(Copy)动作方法大全
2014/06/20 Javascript
jQuery hover事件简单实现同时绑定2个方法
2016/06/07 Javascript
js enter键激发事件实例代码
2016/08/17 Javascript
javascript创建对象的3种方法
2016/11/02 Javascript
js实现五星评价功能
2017/03/08 Javascript
nodejs个人博客开发第三步 载入页面
2017/04/12 NodeJs
详解用node-images 打造简易图片服务器
2017/05/08 Javascript
微信小程序仿美团城市选择
2018/06/06 Javascript
浅谈redux以及react-redux简单实现
2018/08/28 Javascript
web页面和微信小程序页面实现瀑布流效果
2018/09/26 Javascript
javascript实现异形滚动轮播
2019/11/28 Javascript
[04:13]2014DOTA2国际邀请赛 专访DC目前形势不容乐观
2014/07/12 DOTA
[01:34]传奇从这开始 2016国际邀请赛中国区预选赛震撼开启
2016/06/26 DOTA
Python实现优先级队列结构的方法详解
2016/06/02 Python
python使用Matplotlib画条形图
2020/03/25 Python
对django xadmin自定义菜单的实例详解
2019/01/03 Python
TensorFlow-gpu和opencv安装详细教程
2020/06/30 Python
HTML4和HTML5之间除了相似以外的10个主要不同
2012/12/13 HTML / CSS
学院领导推荐信
2013/10/30 职场文书
高中生学习生活的自我评价
2013/11/27 职场文书
主治医师岗位职责
2013/12/10 职场文书
《要下雨了》教学反思
2014/02/17 职场文书
在校大学生自我评价范文
2014/09/12 职场文书
微笑面对生活演讲稿
2014/09/23 职场文书
2015年基层党组织公开承诺书
2015/01/21 职场文书
2016中秋节月饼促销广告语
2016/01/28 职场文书
《夹竹桃》教学反思
2016/02/23 职场文书
Python turtle实现贪吃蛇游戏
2021/06/18 Python
SpringBoot中使用Redis作为全局锁示例过程
2022/03/24 Java/Android
SpringBoot 集成短信和邮件 以阿里云短信服务为例
2022/04/22 Java/Android