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&java(一)
Oct 09 PHP
mac下使用brew配置环境的步骤分享
May 23 PHP
具有时效性的php加密解密函数代码
Jun 19 PHP
php中限制ip段访问、禁止ip提交表单的代码分享
Aug 22 PHP
php连接odbc数据源并保存与查询数据的方法
Dec 24 PHP
CodeIgniter配置之routes.php用法实例分析
Jan 19 PHP
人脸识别测颜值、测脸龄、测相似度微信接口
Apr 07 PHP
php获得文件夹下所有文件的递归算法的简单实例
Nov 01 PHP
PHP基于新浪IP库获取IP详细地址的方法
May 04 PHP
PHP实现自动发送邮件功能代码(qq 邮箱)
Aug 18 PHP
PHP Laravel中的Trait使用方法
Jan 20 PHP
PHP后门隐藏的一些技巧总结
Nov 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
php 连接mysql连接被重置的解决方法
2011/02/15 PHP
基于php设计模式中工厂模式详细介绍
2013/05/15 PHP
一个PHP的ZIP压缩类分享
2014/05/04 PHP
EarthLiveSharp中cloudinary的CDN图片缓存自动清理python脚本
2017/04/04 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
Javascript remove 自定义数组删除方法
2009/10/20 Javascript
JavaScript调试技巧之console.log()详解
2014/03/19 Javascript
JS实现的网页倒计时数字时钟效果
2015/03/02 Javascript
JavaScript中的方法重载实例
2015/03/16 Javascript
Express的路由详解
2015/12/10 Javascript
js实现为a标签添加事件的方法(使用闭包循环)
2016/08/02 Javascript
JavaScript中for循环的几种写法与效率总结
2017/02/03 Javascript
JS中input表单隐藏域及其使用方法
2017/02/13 Javascript
Angular.js实现多个checkbox只能选择一个的方法示例
2017/02/24 Javascript
JS实现批量上传文件并显示进度功能
2017/06/27 Javascript
详解vue页面首次加载缓慢原因及解决方案
2019/11/06 Javascript
使用tensorflow实现线性回归
2018/09/08 Python
Python使用pyshp库读取shapefile信息的方法
2018/12/29 Python
详解Python logging调用Logger.info方法的处理过程
2019/02/12 Python
Python实现简单层次聚类算法以及可视化
2019/03/18 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
2019/04/27 Python
PyQt5基本控件使用详解:单选按钮、复选框、下拉框
2019/08/05 Python
django 数据库连接模块解析及简单长连接改造方法
2019/08/29 Python
如何基于python操作json文件获取内容
2019/12/24 Python
Python使用qrcode二维码库生成二维码方法详解
2020/02/17 Python
Django更新models数据库结构步骤
2020/04/01 Python
Django之choices选项和富文本编辑器的使用详解
2020/04/01 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
2021/01/27 Python
香港草莓网土耳其网站:Strawberrynet TR
2017/03/02 全球购物
英国时尚配饰、珠宝和服装网站:KJ Beckett
2020/01/23 全球购物
会计电算化应届生自荐信
2014/02/25 职场文书
中秋客户感谢信
2015/01/22 职场文书
起诉书范文
2015/05/20 职场文书
国博复兴之路观后感
2015/06/02 职场文书
2015年秋季小学开学典礼主持词
2015/07/16 职场文书
2015新教师教学工作总结
2015/07/22 职场文书