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中创建空文件的代码[file_put_contents vs touch]
Jan 20 PHP
PHP-redis中文文档介绍
Feb 07 PHP
PHP重定向的3种方式
Mar 07 PHP
php跨域cookie共享使用方法
Feb 20 PHP
Laravel 5框架学习之Blade 简介
Apr 08 PHP
启用Csrf后POST数据时出现的400错误
Jul 05 PHP
php实现转换html格式为文本格式的方法
May 16 PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
Aug 04 PHP
php利用ob_start()清除输出和选择性输出的方法
Jan 18 PHP
PHP基于redis计数器类定义与用法示例
Feb 08 PHP
PHP 计算两个特别大的整数实例代码
May 07 PHP
thinkPHP框架整合tcpdf插件操作示例
Aug 07 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来写记数器(详细介绍)
2006/10/09 PHP
收集的DedeCMS一些使用经验
2007/03/17 PHP
CodeIgniter分页类pagination使用方法示例
2016/03/28 PHP
php抛出异常与捕捉特定类型的异常详解
2016/10/26 PHP
JS控件的生命周期介绍
2012/10/22 Javascript
javascript中input中readonly和disabled区别介绍
2012/10/23 Javascript
Bootstrap 模态框(Modal)插件代码解析
2016/12/21 Javascript
微信小程序 实战程序简易新闻的制作
2017/01/09 Javascript
jQuery动态生成不规则表格(前后端)
2017/02/21 Javascript
BootStrap selectpicker后台动态绑定数据
2017/06/01 Javascript
Vue路由切换时的左滑和右滑效果示例
2018/05/29 Javascript
Puppet的一些技巧
2018/09/17 Javascript
JS 实现发送短信验证码的“59秒后重新发送验证短信”功能
2019/08/23 Javascript
Python常用时间操作总结【取得当前时间、时间函数、应用等】
2017/05/11 Python
Python使用QRCode模块生成二维码实例详解
2017/06/14 Python
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
2017/09/06 Python
Python Series从0开始索引的方法
2018/11/06 Python
Python 使用list和tuple+条件判断详解
2019/07/30 Python
pycharm修改file type方式
2019/11/19 Python
python基于plotly实现画饼状图代码实例
2019/12/16 Python
浅谈python元素如何去重,去重后如何保持原来元素的顺序不变
2020/02/28 Python
BCBG官网:BCBGMAXAZRIA
2017/12/29 全球购物
美体小铺奥地利官方网站:The Body Shop奥地利
2019/04/11 全球购物
希腊品牌鞋类销售网站:epapoutsia.gr
2020/03/18 全球购物
JRE、JDK、JVM之间的关系怎样
2012/05/16 面试题
.NET里面什么时候需要调用垃圾回收
2015/06/01 面试题
GWT的应用有哪两种部署模式
2012/12/21 面试题
客服专员岗位职责范本
2013/11/29 职场文书
医院安全生产月活动总结
2014/07/05 职场文书
反对四风问题自我剖析材料
2014/09/29 职场文书
社区四风存在问题及整改措施
2014/10/26 职场文书
群众路线四风对照检查材料
2014/11/04 职场文书
幼儿园2014年度工作总结
2014/11/10 职场文书
2015年企业新年寄语
2014/12/08 职场文书
2016大学生形势与政策心得体会
2016/01/12 职场文书
Java Spring Boot请求方式与请求映射过程分析
2022/06/25 Java/Android