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往windows中添加用户
Dec 06 PHP
php学习 字符串课件
Jun 15 PHP
PHP实现克鲁斯卡尔算法实例解析
Aug 22 PHP
thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法
May 21 PHP
摘自织梦CMS的HTTP文件下载类
Aug 08 PHP
PHP目录操作实例总结
Sep 27 PHP
php插入含有特殊符号数据的处理方法
Nov 24 PHP
php脚本守护进程原理与实现方法详解
Jul 20 PHP
THINKPHP3.2使用soap连接webservice的解决方法
Dec 13 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
Feb 19 PHP
PHP超级全局变量【$GLOBALS,$_SERVER,$_REQUEST等】用法实例分析
Dec 11 PHP
thinkphp框架表单数组实现图片批量上传功能示例
Apr 04 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
CodeIgniter php mvc框架 中国网站
2008/05/26 PHP
PHP中使用php://input处理相同name值的表单数据
2015/02/03 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
2017/07/26 PHP
redis+php实现微博(一)注册与登录功能详解
2019/09/23 PHP
js获得鼠标的坐标值的方法
2013/03/13 Javascript
原生js拖拽(第一课 未兼容)拖拽思路
2013/03/29 Javascript
JS往数组中添加项性能分析
2015/02/25 Javascript
JavaScript中的getTime()方法使用详解
2015/06/10 Javascript
js文本框走动跑马灯效果代码分享
2015/08/25 Javascript
jQuery满屏焦点图左右滚动特效代码分享
2015/09/07 Javascript
AngualrJS中的Directive制作一个菜单
2016/01/26 Javascript
node.js ws模块搭建websocket服务端的方法示例
2019/04/25 Javascript
基于layui table返回的值的多级嵌套的解决方法
2019/09/19 Javascript
es6函数之尾递归用法实例分析
2020/04/25 Javascript
[53:10]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs VG 第一场
2018/04/11 DOTA
解决Python中字符串和数字拼接报错的方法
2016/10/23 Python
Python列表切片用法示例
2017/04/19 Python
apache部署python程序出现503错误的解决方法
2017/07/24 Python
Python cookbook(数据结构与算法)让字典保持有序的方法
2018/02/18 Python
python 通过logging写入日志到文件和控制台的实例
2018/04/28 Python
钉钉群自定义机器人消息Python封装的实例
2019/02/20 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
2020/02/04 Python
python使用梯度下降和牛顿法寻找Rosenbrock函数最小值实例
2020/04/02 Python
一文读懂python Scrapy爬虫框架
2021/02/24 Python
python中使用asyncio实现异步IO实例分析
2021/02/26 Python
英国手机零售商:Metrofone
2019/03/18 全球购物
如何在Cookie里面保存Unicode和国际化字符
2013/05/25 面试题
北京RT科技有限公司.net工程师面试题
2013/02/15 面试题
工作违纪检讨书
2014/02/17 职场文书
延安红色之旅心得体会
2014/10/07 职场文书
部门群众路线教育实践活动对照检查材料思想汇报
2014/10/07 职场文书
庆六一开幕词
2015/01/29 职场文书
2015公司年度工作总结
2015/05/14 职场文书
Python极值整数的边界探讨分析
2021/09/15 Python
PYTHON使用Matplotlib去实现各种条形图的绘制
2022/03/22 Python
使用Docker容器部署rocketmq单机的全过程
2022/04/03 Servers