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;
}

最新文章

  1. codevs 1015 计算器的改良 2000年NOIP全国联赛普及组
  2. Java接口之间的继承
  3. 前台js分页,自己手写逻辑2
  4. Postman的使用
  5. poj1012约瑟夫
  6. 二级c程序设计题(1)
  7. POJ 1777 mason素数
  8. SSH框架中配置Hibernate使用proxool连接池
  9. 梳理一下uboot是如何从nandflash挂载文件系统的
  10. CSS后代选择器、子元素选择器、相邻兄弟选择器区别与详解
  11. MonoDeveloper 快捷键
  12. JQuery之动画与特效
  13. Asp.Net Core 轻松学-一行代码搞定文件上传
  14. Spring Boot 打war包后自定义404页面不生效解决方法
  15. java 通过域名获取ip
  16. 自制操作系统Antz(4)——进入保护模式 (下) 实现内核并从硬盘载入
  17. 20175234 2018-2019-2 《Java程序设计》第四周学习总结
  18. Vue 安装脚手架 工具 vue-cli (最新)
  19. webpack8--删除dist目录,压缩分离后的CSS
  20. QT-This application failed to start because it could not find or load the Qt platform plugin "windows"

热门文章

  1. centos 7 官网安装 PostgreSQL
  2. UITableViewCell的多选操作
  3. Bitmaps
  4. spring 'arroudAspect' for bean class [com.dw.test.ArroudAspect] conflicts with existing, non-compatible bean definition of same name and class [com.dw.aspect.ArroudAspect]
  5. java语言中Object对象的hashCode()取值的底层算法是怎样实现的
  6. visual studio for mac 安装文件
  7. Compiling: main.cpp /bin/sh: g++: not found
  8. python增删改查zabbix主机等
  9. wordpress,cos-html-cache静态化后,点击数失效问题的解决方案
  10. [转]BFC 神奇背后的原理