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

在和第三方支付接口对接时经常会对数据进行签名和验签,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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值