PHP中HMAC-SHA1加密算法如何实现的
Admin 2022-08-25 群英技术资讯 905 次浏览
HMAC-SHA1加密算法
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 openssl(SHA1WithRSA) 签名 验签
签名:
public function wjSign($data){ $key = openssl_pkey_get_private(file_get_contents($this->privateKeyPathWJ)); openssl_sign($data, $sign, $key, OPENSSL_ALGO_SHA1); $sign = base64_encode($sign); return $sign; }
验签:
public function wjVerify($data, $sign){ $sign = base64_decode($sign); $key = openssl_pkey_get_public(file_get_contents($this->publicKeyPathWJ)); $result = openssl_verify($data, $sign, $key, OPENSSL_ALGO_SHA1) === 1; return $result; }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
php中$this的就近原则:1、$this的就近原则不仅适用于private属性,同样适用于private成员方法。2、$this指代被调用的对象,但在处理private属性和方法时,会遵循就近原则,会指代所属方法所在的类。
在PHP7中已经废除了mysql库了,则只能使用mysqli及PDOmysqli面向对象风格<?php$serve = 'localhost:3306';$username = 'root';$password = 'admin123';$dbname = 'examples';$mysqli = new Mysqli($serve,$username,$password,...
对于php发送网络请求,我们最常用的请求就是curl,有时我们也会用到file_get_contents函数发送网络请求。本文为大家总结了php实现网络请求的方法及函数,感兴趣的可以学习一下
重构代码是构建和维护软件的重要方面,重构涵盖了一系列不同的技术,包括移动,提取,复制,删除和重命名。PhpStorm的重构功能(包含在核心软件包中)支持所有这些功能。
php创建函数的过程你知道是怎么样的吗?为了帮助大家更好的理解问题,小编特地整理了相关资料给大家,如果你感兴趣的话可以来看一看,一定不会让你失望的。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008