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 相关文章推荐
eWebEditor v3.8 商业完整版 (PHP)
Dec 06 PHP
PHP 木马攻击防御技巧
Jun 13 PHP
php表单提交问题的解决方法
Apr 12 PHP
用PHP的超级变量$_POST获取HTML表单(HTML Form) 数据
May 07 PHP
php实现单链表的实例代码
Mar 22 PHP
深入PHP与浏览器缓存的分析
Jun 03 PHP
ThinkPHP模板中判断volist循环的最后一条记录的验证方法
Jul 01 PHP
php结合正则获取字符串中数字
Jun 19 PHP
Zend Framework自定义Helper类相关注意事项总结
Mar 14 PHP
浅谈PHP中try{}catch{}的使用方法
Dec 09 PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
Jan 15 PHP
详解PHP队列的实现
Mar 14 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
PHP的FTP学习(一)[转自奥索]
2006/10/09 PHP
PHP的ASP防火墙
2006/10/09 PHP
php判断手机访问还是电脑访问示例分享
2014/01/20 PHP
在php和MySql中计算时间差的方法详解
2015/03/27 PHP
PHP中empty和isset对于参数结构的判断及empty()和isset()的区别
2015/11/15 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
2019/08/05 PHP
JavaScript 联动的无限级封装类,数据采用非Ajax方式,随意添加联动
2010/06/29 Javascript
分享精心挑选的23款美轮美奂的jQuery 图片特效插件
2012/08/14 Javascript
js判断60秒以及倒计时示例代码
2014/01/24 Javascript
JavaScript forEach()遍历函数使用及介绍
2015/07/08 Javascript
使用postMesssage()实现跨域iframe页面间的信息传递方法
2016/03/29 Javascript
Angularjs使用过滤器完成排序功能
2017/09/20 Javascript
layui 表单标签的校验方法
2019/09/04 Javascript
前端vue-cli项目中使用img图片和background背景图的几种方法
2019/11/13 Javascript
vue3.0 自适应不同分辨率电脑的操作
2021/02/06 Vue.js
javascript实现倒计时关闭广告
2021/02/09 Javascript
[02:16]DOTA2英雄基础教程 干扰者
2014/01/15 DOTA
[07:55]2014DOTA2 TI正赛第三日 VG上演推进荣耀DKEG告别
2014/07/21 DOTA
[51:32]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
linux系统使用python获取内存使用信息脚本分享
2014/01/15 Python
python的socket编程入门
2018/01/29 Python
TensorFlow打印tensor值的实现方法
2018/07/27 Python
python 基于wx实现音乐播放
2020/11/24 Python
新西兰第一的行李箱网站:luggage.co.nz
2019/07/22 全球购物
HttpServlet类中的主要方法都有哪些?各自的作用是什么?
2014/03/16 面试题
求职信标题怎么写
2014/05/26 职场文书
商场客服专员岗位职责
2014/06/13 职场文书
工厂门卫的岗位职责
2014/07/27 职场文书
2014年护理工作总结范文
2014/11/14 职场文书
2014年社区宣传工作总结
2014/12/02 职场文书
典型事迹材料范文
2014/12/29 职场文书
研究生个人学年总结
2015/02/14 职场文书
2014年个人年终总结
2015/03/09 职场文书
2015年食品安全工作总结
2015/05/15 职场文书
left join、inner join、right join的区别
2021/04/05 MySQL
Prometheus 监控MySQL使用grafana展示
2021/08/30 MySQL