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 相关文章推荐
phpMyAdmin 安装及问题总结
May 28 PHP
PHP大批量数据操作时临时调整内存与执行时间的方法
Apr 20 PHP
改写函数实现PHP二维/三维数组转字符串
Sep 13 PHP
PHP将XML转数组过程详解
Nov 13 PHP
PHP安全的URL字符串base64编码和解码
Jun 19 PHP
CentOS下PHP安装Oracle扩展
Feb 15 PHP
php使用正则表达式进行字符串搜索的方法
Mar 23 PHP
分享php分页的功能模块
Jun 16 PHP
php阿拉伯数字转中文人民币大写
Dec 21 PHP
php有效防止图片盗用、盗链的两种方法
Nov 01 PHP
PHP实现的mysql操作类【MySQL与MySQLi方式】
Oct 07 PHP
浅谈PHPANALYSIS提取关键字
Mar 08 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
实用函数9
2007/11/08 PHP
PHP中输出转义JavaScript代码的实现代码
2011/04/22 PHP
php后台如何避免用户直接进入方法实例
2013/10/15 PHP
PHP多线程类及用法实例
2014/12/03 PHP
jQuery+PHP实现的掷色子抽奖游戏实例
2015/01/04 PHP
php定义一个参数带有默认值的函数实例分析
2015/03/16 PHP
浅谈PHP中try{}catch{}的使用方法
2016/12/09 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
js字符编码函数区别分析
2011/12/28 Javascript
jquery validate poshytip 自定义样式
2012/11/26 Javascript
用js的document.write输出的广告无阻塞加载的方法
2014/06/05 Javascript
NodeJS学习笔记之Connect中间件应用实例
2015/01/27 NodeJs
JavaScript设计模式之单体模式全面解析
2016/09/09 Javascript
微信小程序 视图层(xx.xml)和逻辑层(xx.js)详细介绍
2016/10/13 Javascript
AngularJS监听路由变化的方法
2017/03/07 Javascript
JS获取填报扩展单元格控件的值的解决办法
2017/07/14 Javascript
详解PHP后期静态绑定分析与应用
2018/03/21 Javascript
谈谈React中的Render Props模式
2018/12/06 Javascript
通过npm或yarn自动生成vue组件的方法示例
2019/02/12 Javascript
解析vue、angular深度作用选择器
2019/09/11 Javascript
[01:25]DOTA2超级联赛专访iG 将调整状态找回自己
2013/06/05 DOTA
[36:37]2014 DOTA2华西杯精英邀请赛5 24 VG VS iG
2014/05/25 DOTA
[03:06]3分钟带你回顾DOTA2完美盛典&完美大师赛
2017/12/06 DOTA
python 简单的多线程链接实现代码
2016/08/28 Python
基于python脚本实现软件的注册功能(机器码+注册码机制)
2016/10/09 Python
python判断一个对象是否可迭代的例子
2019/07/22 Python
Python图像处理之图片文字识别功能(OCR)
2019/07/30 Python
在Django下创建项目以及设置settings.py教程
2019/12/03 Python
Python 日期的转换及计算的具体使用详解
2020/01/16 Python
Python 去除字符串中指定字符串
2020/03/05 Python
Python脚本实现监听服务器的思路代码详解
2020/05/28 Python
什么是Web Service?
2012/07/25 面试题
电子信息专业学生自荐信
2013/11/09 职场文书
半年思想汇报
2013/12/30 职场文书
2014年教学管理工作总结
2014/12/02 职场文书
js中Map和Set的用法及区别实例详解
2022/02/15 Javascript