在和第三方支付接口对接时经常会对数据进行签名和验签,sha1WithRSA也算是比较常用的一种签名加密算法。php开启openssl库后实现起来也算比较简单。

我在这里使用sha1withRSA算法来实现数据的加密签名和验签,其中公钥和私钥均读取自接口方提供的.pfx证书文件。

以下是使用私钥进行签名的代码示例,注意其中在return前对生成的签名密文进行base64编码:

/**

* 签名 生成签名串 基于sha1withRSA

* @param string $data 签名前的字符串

* @return string 签名串

* @link www.zh30.com

*/

function sign($data) {

$certs = array();

openssl_pkcs12_read(file_get_contents(“你的.pfx文件路径”), $certs, “password”); //其中password为你的证书密码

if(!$certs) return ;

$signature = ”;

openssl_sign($data, $signature, $certs[‘pkey’]);

return base64_encode($signature);

}

验签时使用公钥,也就是.pfx文件中的cert KEY:

/**

* 验签 验证签名 基于sha1withRSA

* @param $data 签名前的原字符串

* @param $signature 签名串

* @return bool

* @link www.zh30.com

*/

function verify($data, $signature) {

$certs = array();

openssl_pkcs12_read(file_get_contents(“你的.pfx文件路径”), $certs, “password”);

if(!$certs) return ;

$result = (bool) openssl_verify($data, $signature, $certs[‘cert’]); //openssl_verify验签成功返回1,失败0,错误返回-1

return $result;

}

转载: https://www.zh30.com/php-sha1withrsa-sign-verify-pfx.html

php pfx加密,php基于sha1withRSA算法的签名和验签(pfx证书)相关推荐

  1. 基于mbedTLS算法库实现国密SM2签名和验签算法

    网上有大量的基于OpenSSL实现的国密算法库,比如著名的GmSSL,可以直接拿来用.我自己常用的是mbedTLS的算法库,比较小巧简单,在mbedTLS的大数算法的基础上实现了国密SM2的签名和验签 ...

  2. PHP SHA1withRSA加密生成签名及验签

    最近公司对接XX第三方支付平台的代付业务,由于对方公司只有JAVA的demo,所以只能根据文档自己整合PHP的签名加密,网上找过几个方法,踩到各种各样的坑,还好最后算是搞定了,话不多说,代码分享出来. ...

  3. RSA加密、解密、签名、验签(验证签名)RSA算法原理

    转载链接:https://www.jianshu.com/p/8dc4a5f64e06 https://www.cnblogs.com/pcheng/p/9629621.html RSA原理:http ...

  4. Java开发中的加密、解密、签名、验签,密钥,证书,这篇就够了,赶紧收藏起来

    OpenSSL和keytool 先说一下两个重要的工具 OpenSSL:OpenSSL整个软件包大概可以分成三个主要的功能部分:SSL协议库libssl.应用程序命令工具以及密码算法库libcrypt ...

  5. 数字证书应用综合揭秘(包括证书生成、加密、解密、签名、验签)

    引言 数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件.为现实网络安全化标准如今大部分的 B2B.B2C.P2P.O2O 等商业网站含有重要企业资料个人资料的信息资信网站 ...

  6. asp版 vbscript RSA公钥加密 / 私钥解密 / 私钥签名 / 公钥验签(支持中文)分段加密解密

    最近有空在把自己的asp站点后端函数全部整理了下,在弄RSA的时候遇到了坑了,然后找到下面这位兄弟刚好发布的文章: https://blog.csdn.net/todaygods/article/de ...

  7. 分享一个RSA加解密工具类,公钥加密私钥解密、私钥加密公钥解密、私钥签名公钥验签、生成公钥私钥

    测试: public static void main(String[] args) {try {//生成公钥私钥Map<String, Object> map = RSAUtil.ini ...

  8. 基于OpenSSL 1.1.1版实现的SM2签名与验签C程序

    OpenSSL 1.1.1 版提供了对国密 SM4.SM3.SM2 算法的支持.对于 SM2 算法,在源码的 crypto/sm2 目录下,sm2_sign.c 文件中实现了 SM2 签名与验签, s ...

  9. 【OP-TEE】 TA的签名与验签 基于optee 3.11

    TA的签名 以optee-os 3.11版本为例.在optee_os目录下,存放着签名的私钥和签名脚本. 工程目录/optee_os/keys/default_ta.pem 工程目录/optee_os ...

最新文章

  1. 转 The connection to adb is down, and a severe error
  2. 定义一个dto对象_正确理解DTO、值对象和POCO
  3. 【很早以前的作品】自编游戏之NationFight
  4. 【中级软考】计算能力足够强大,所有加密算法原理上都会被破解吗?
  5. echarts定时加载动画数据
  6. OpenCV图像处理(Python)学习笔记
  7. NLP算法学习路线-自己整理
  8. MyEclipse激活步骤
  9. Nvelocity 第二章 注释语法
  10. 反编译软件ILSpy的使用教程
  11. Python基础教程(入门教程),30分钟玩转Python编程!
  12. 安卓智能手机完全装机手册,让安卓拥有无限可能!
  13. 圣思园JavaWeb随手笔记
  14. c语言数组作业题,数组练习题
  15. 浪潮之巅--摩托罗拉
  16. LTE-TDD资源调度(1)-QCI、GBR和Non-GBR
  17. 在线免费给图片添加水印,图片加水印方法教程!
  18. 数据分析36计(23):长期转化率 A/B 实验的问题,用边际结构模型纠正后结论反转...
  19. 解决Windows11 Microsoft Store微软商店无法联网 Windows聚焦不更新 微软账户无法登录等
  20. proxomx软件仓库无法使用解决

热门文章

  1. 戴尔XPS 8960台式机 评测
  2. android 行高和字号之间关系,行高和字号
  3. maven项目html文件打开乱码,maven项目文件乱码问题
  4. html5 小车动画_HTML5实现动画效果的方式汇总
  5. 【Zuul2】网关Zuul控制台DashBoard
  6. 如何用C语言打印杨辉三角
  7. 微信小程序webview与h5通过postMessage实现实时通讯的实现
  8. 深入浅出谈4G ─ 4G LTE网速到底有多快?
  9. PreparedStatement 的 setDate 方法设置 java.sql.Date 日期
  10. windows 小白安装Tensorflow