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 $_SERVER详解
Jan 16 PHP
Zend Studio去除编辑器的语法警告设置方法
Oct 24 PHP
php读取本地文件常用函数(fopen与file_get_contents)
Sep 09 PHP
php中字符集转换iconv函数使用总结
Oct 11 PHP
php学习笔记之面向对象
Nov 08 PHP
PHP 快速排序算法详解
Nov 10 PHP
php实现计数器方法小结
Jan 05 PHP
100行PHP代码实现socks5代理服务器
Apr 28 PHP
php图片添加水印例子
Jul 20 PHP
Zend Framework处理Json数据方法详解
Dec 09 PHP
PHP数据库编程之MySQL优化策略概述
Aug 16 PHP
laravel入门知识点整理
Sep 15 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中的数组操作函数整理
2008/08/18 PHP
PHP define函数的使用说明
2008/08/27 PHP
PHP 开发环境配置(Zend Server安装)
2010/04/28 PHP
php数组函数序列之array_intersect() 返回两个或多个数组的交集数组
2011/11/10 PHP
php利用array_search与array_column实现二维数组查找
2019/07/08 PHP
Laravel框架下载,安装及路由操作图文详解
2019/12/04 PHP
JavaScript中的Screen屏幕对象
2008/01/16 Javascript
JavaScript prototype属性深入介绍
2012/11/27 Javascript
javascript比较两个日期相差天数的方法
2015/07/23 Javascript
JS实现的自定义右键菜单实例二则
2015/09/01 Javascript
JavaScript仿flash遮罩动画效果
2016/06/15 Javascript
js读取json文件片段中的数据实例
2017/03/09 Javascript
d3.js入门教程之数据绑定详解
2017/04/28 Javascript
VUE中使用Vue-resource完成交互
2017/07/21 Javascript
js原生代码实现轮播图的实例讲解
2017/07/28 Javascript
jQuery获取table表中的td标签(实例讲解)
2017/07/28 jQuery
基于daterangepicker日历插件使用参数注意的问题
2017/08/10 Javascript
vue系列之动态路由详解【原创】
2017/09/10 Javascript
JS实现的获取银行卡号归属地及银行卡类型操作示例
2019/01/08 Javascript
微信小程序实现购物页面左右联动
2019/02/15 Javascript
Vue CLI3.0中使用jQuery和Bootstrap的方法
2019/02/28 jQuery
创建nuxt.js项目流程图解
2020/03/13 Javascript
解决vue项目获取dom元素宽高总是不准确问题
2020/07/29 Javascript
写一个Vue loading 插件
2020/11/09 Javascript
Python中的多重装饰器
2015/04/11 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
2018/06/01 Python
Python中遍历列表的方法总结
2019/06/27 Python
Python2和3字符编码的区别知识点整理
2019/08/08 Python
python 等差数列末项计算方式
2020/05/03 Python
CSS3之边框多颜色Border-color属性使用示例
2013/10/11 HTML / CSS
纽约现代艺术博物馆商店:MoMA STORE(室内家具和杂货商品)
2016/08/02 全球购物
StubHub新西兰:购买和出售你的门票
2019/04/22 全球购物
中国制造网:Made-in-China.com
2019/10/25 全球购物
21岁生日感言
2014/02/27 职场文书
《有趣的发现》教学反思
2014/04/15 职场文书
赔偿协议书范本
2014/09/12 职场文书