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 相关文章推荐
通过ICQ网关发送手机短信的PHP源程序
Oct 09 PHP
无数据库的详细域名查询程序PHP版(2)
Oct 09 PHP
php && 逻辑与运算符使用说明
Mar 04 PHP
php allow_url_include的应用和解释
Apr 22 PHP
PHP spl_autoload_register实现自动加载研究
Dec 06 PHP
基于php-fpm 参数的深入理解
Jun 03 PHP
PHP+FastCGI+Nginx配置PHP运行环境
Aug 07 PHP
php实现猴子选大王问题算法实例
Apr 20 PHP
php+resumablejs实现的分块上传 断点续传功能示例
Apr 18 PHP
Yii2配置Nginx伪静态的方法
May 05 PHP
Laravel学习教程之View模块详解
Sep 18 PHP
关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍
Jul 13 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 超链接 抓取实现代码
2009/06/29 PHP
php实现jQuery扩展函数
2009/10/30 PHP
php calender(日历)二个版本代码示例(解决2038问题)
2013/12/24 PHP
THINKPHP5分页数据对象处理过程解析
2020/10/28 PHP
JavaScript中链式调用之研习
2011/04/07 Javascript
jQuery 1.7.2中getAll方法的疑惑分析
2012/05/23 Javascript
Js+Flash实现访问剪切板操作
2012/11/20 Javascript
在百度知道团队中快速审批新成员的js脚本
2014/02/02 Javascript
自编jQuery插件实现模拟alert和confirm
2014/09/01 Javascript
JavaScript计划任务后台运行的方法
2015/12/18 Javascript
详解WordPress开发中get_current_screen()函数的使用
2016/01/11 Javascript
jQuery 选择同时包含两个class的元素的实现方法
2016/06/01 Javascript
JavaScript使用正则表达式获取全部分组内容的方法示例
2017/01/17 Javascript
详解Vue.js基于$.ajax获取数据并与组件的data绑定
2017/05/26 Javascript
VUE重点问题总结
2018/03/19 Javascript
Vue 页面切换效果之 BubbleTransition(推荐)
2018/04/08 Javascript
vue2.0$nextTick监听数据渲染完成之后的回调函数方法
2018/09/11 Javascript
JavaScript中的回调函数实例讲解
2019/01/27 Javascript
JS实现的点击按钮图片上下滚动效果示例
2019/01/28 Javascript
layui实现左侧菜单点击右侧内容区显示
2019/07/26 Javascript
js+css3实现炫酷时钟
2020/08/18 Javascript
JS pushlet XMLAdapter适配器用法案例解析
2020/10/16 Javascript
python按照多个字符对字符串进行分割的方法
2015/03/17 Python
git使用.gitignore设置不生效或不起作用问题的解决方法
2017/06/01 Python
python脚本实现验证码识别
2018/06/07 Python
python json.loads兼容单引号数据的方法
2018/12/19 Python
python之mock模块基本使用方法详解
2019/06/27 Python
简单了解python单例模式的几种写法
2019/07/01 Python
python3.7+selenium模拟淘宝登录功能的实现
2020/05/26 Python
Django-simple-captcha验证码包使用方法详解
2020/11/28 Python
详解如何用HTML5 Canvas API控制图片的缩放变换
2016/03/22 HTML / CSS
在阿尔卑斯山或希腊度过快乐假期:Alpine Elements
2019/12/28 全球购物
介绍下WebSphere的安全性
2013/01/31 面试题
测绘工程本科生求职信
2013/10/10 职场文书
实习单位推荐信范文
2013/11/27 职场文书
2015年民主评议党员工作总结
2015/05/19 职场文书