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 setcookie指定domain参数后,在IE下设置cookie失效的解决方法
Sep 09 PHP
php从数组中随机抽取一些元素的代码
Nov 05 PHP
关于二级目录拖拽排序的实现(源码示例下载)
Apr 26 PHP
php 地区分类排序算法
Jul 01 PHP
php中调用其他系统http接口的方法说明
Feb 28 PHP
详解PHP的Yii框架中组件行为的属性注入和方法注入
Mar 18 PHP
php文件系统处理方法小结
May 23 PHP
php中__toString()方法用法示例
Dec 07 PHP
Yii 2.0实现联表查询加搜索分页的方法示例
Aug 02 PHP
Laravel解决nesting level错误和隐藏index.php的问题
Oct 12 PHP
解决laravel资源加载路径设置的问题
Oct 14 PHP
详解Laravel服务容器的绑定与解析
Nov 05 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 网页游戏开发入门教程一(webgame+design)
2009/10/26 PHP
php去除头尾空格的2种方法
2015/03/16 PHP
php有效防止图片盗用、盗链的两种方法
2016/11/01 PHP
作为PHP程序员你要知道的另外一种日志
2018/07/30 PHP
PHP使用ajax的post方式下载excel文件简单示例
2019/08/06 PHP
PHP $O00OO0=urldecode & eval 解密,记一次商业源码的去后门
2020/09/13 PHP
PHP执行系统命令函数实例讲解
2021/03/03 PHP
JavaScript 三种不同位置代码的写法
2009/10/25 Javascript
改变隐藏的input中value值的方法
2014/03/19 Javascript
原生js事件的添加和删除的封装
2014/07/01 Javascript
javascript实现简单的on事件绑定
2016/08/23 Javascript
AngularJs directive详解及示例代码
2016/09/01 Javascript
Webpack打包css后z-index被重新计算的解决方法
2017/06/18 Javascript
JavaScript实现鼠标滚轮控制页面图片切换功能示例
2017/10/14 Javascript
Swiper自定义分页器使用详解
2017/12/28 Javascript
详解Node.js模板引擎Jade入门
2018/01/19 Javascript
vue 的点击事件获取当前点击的元素方法
2018/09/15 Javascript
在React项目中使用Eslint代码检查工具及常见问题
2018/10/10 Javascript
简单了解JavaScript异步
2019/05/23 Javascript
vue+axios 拦截器实现统一token的案例
2020/09/11 Javascript
vue开发chrome插件,实现获取界面数据和保存到数据库功能
2020/12/01 Vue.js
Django 日志配置按日期滚动的方法
2019/01/31 Python
在Tensorflow中查看权重的实现
2020/01/24 Python
Python 利用argparse模块实现脚本命令行参数解析
2020/12/28 Python
Cotton On南非:澳洲时尚平价品牌
2018/06/28 全球购物
英国玛莎百货美国官网:Marks & Spencer美国
2018/11/06 全球购物
苏格兰领先的多渠道鞋店:Begg Shoes
2019/10/22 全球购物
大学生个人简历中的自我评价
2013/12/27 职场文书
教师辞职报告范文
2014/01/20 职场文书
幼儿园六一儿童节主持节目串词
2014/03/21 职场文书
公司总经理任命书
2014/06/05 职场文书
教师个人自我评价
2015/03/04 职场文书
公司职员入党自传书
2015/06/26 职场文书
来探秘“德国中小企业”的成功之道
2019/07/26 职场文书
互联网创业商业模式以及赚钱法则有哪些?
2019/10/12 职场文书
CI Games宣布《堕落之王2》使用虚幻引擎5制作 预计将于2023年正式发售
2022/04/11 其他游戏