使用HMAC-SHA1签名方法详解


Posted in PHP onJune 26, 2013

加密算法:
使用HMAC-SHA1签名方法

    /**
     * @brief 使用HMAC-SHA1算法生成oauth_signature签名值
     *
     * @param $key  密钥
     * @param $str  源串
     *
     * @return 签名值
     */
    function getSignature($str, $key) {
        $signature = "";
        if (function_exists('hash_hmac')) {
            $signature = base64_encode(hash_hmac("sha1", $str, $key, true));
        } else {
            $blocksize = 64;
            $hashfunc = 'sha1';
            if (strlen($key) > $blocksize) {
                $key = pack('H*', $hashfunc($key));
            }
            $key = str_pad($key, $blocksize, chr(0x00));
            $ipad = str_repeat(chr(0x36), $blocksize);
            $opad = str_repeat(chr(0x5c), $blocksize);
            $hmac = pack(
                    'H*', $hashfunc(
                            ($key ^ $opad) . pack(
                                    'H*', $hashfunc(
                                            ($key ^ $ipad) . $str
                                    )
                            )
                    )
            );
            $signature = base64_encode($hmac);
        }
        return $signature;
    }

PHP 相关文章推荐
php 论坛采集程序 模拟登陆,抓取页面 实现代码
Jul 09 PHP
用PHP写的基于Memcache的Queue实现代码
Nov 27 PHP
php中使用cookie来保存用户登录信息的实现代码
Mar 08 PHP
php中使用PHPExcel读写excel(xls)文件的方法
Sep 15 PHP
php+xml编程之SimpleXML的应用实例
Jan 24 PHP
PHP中的socket_read和socket_recv区别详解
Feb 09 PHP
php如何执行非缓冲查询API
Jul 22 PHP
PHP基于单例模式编写PDO类的方法
Sep 13 PHP
PHP基于反射机制实现插件的可插拔设计详解
Nov 10 PHP
PHP中仿制 ecshop验证码实例
Jan 06 PHP
PHP性能测试工具xhprof安装与使用方法详解
Apr 29 PHP
PHP防止sql注入小技巧之sql预处理原理与实现方法分析
Dec 13 PHP
php读取文件内容的几种方法详解
Jun 26 #PHP
深入file_get_contents与curl函数的详解
Jun 25 #PHP
解析如何去掉CodeIgniter URL中的index.php
Jun 25 #PHP
解析php入库和出库
Jun 25 #PHP
解析php下载远程图片函数 可伪造来路
Jun 25 #PHP
解析php通过cookies获取远程网页的指定代码
Jun 25 #PHP
使用dump函数,给php加断点测试
Jun 25 #PHP
You might like
PHP Yii框架之表单验证规则大全
2015/11/16 PHP
php版阿里云OSS图片上传类详解
2016/12/01 PHP
PHP基于openssl实现的非对称加密操作示例
2019/01/11 PHP
基于laravel Request的所有方法详解
2019/09/29 PHP
jQuery 表单验证扩展代码(一)
2010/10/11 Javascript
读取input:file的路径并显示本地图片的方法
2013/09/23 Javascript
JavaScript四种调用模式和this示例介绍
2014/01/02 Javascript
jquery防止重复执行动画避免页面混乱
2014/04/22 Javascript
超级好用的jQuery圆角插件 Corner速成
2014/08/31 Javascript
JavaScript中的console.log()函数详细介绍
2014/12/29 Javascript
jQuery大于号(>)选择器的作用解释
2015/01/13 Javascript
JavaScript实现LI列表数据绑定的方法
2015/08/04 Javascript
Javascript实现的SHA-256加密算法完整实例
2016/02/02 Javascript
jQuery操作之效果详解
2017/05/19 jQuery
解决ie img标签内存泄漏的问题
2017/10/13 Javascript
通过封装scroll.js 获取滚动条的值
2018/07/13 Javascript
vue 根据数组中某一项的值进行排序的方法
2018/08/30 Javascript
vue 对象添加或删除成员时无法实时更新的解决方法
2019/05/01 Javascript
[02:07]DOTA2新英雄展现中国元素,完美“圣典”亮相央视
2016/12/19 DOTA
利用python Selenium实现自动登陆京东签到领金币功能
2019/10/31 Python
Python多线程:主线程等待所有子线程结束代码
2020/04/25 Python
详解python中的三种命令行模块(sys.argv,argparse,click)
2020/12/15 Python
Python爬虫UA伪装爬取的实例讲解
2021/02/19 Python
外贸实习生自荐信范文
2013/11/24 职场文书
庆八一活动方案
2014/01/25 职场文书
公司合作协议书范本
2014/04/18 职场文书
《谁的本领大》教后反思
2014/04/25 职场文书
企业标语口号
2014/06/10 职场文书
大学生年度个人总结
2015/02/15 职场文书
工厂门卫岗位职责
2015/04/13 职场文书
2015年七七事变78周年纪念活动方案
2015/05/06 职场文书
中学综治宣传月活动总结
2015/05/07 职场文书
导游词之河北白洋淀
2020/01/15 职场文书
Python激活Anaconda环境变量的详细步骤
2021/06/08 Python
golang实现浏览器导出excel文件功能
2022/03/25 Golang
Python图像处理库PIL详细使用说明
2022/04/06 Python