php pkcs7签名验签算法,基于sha1wheRSA算法的签名与验签的运用

1、逻辑

签名:将明文用sha1算法计算散列值,再用私钥和RSA算法对该散列值进行加密处理;

验签:用公钥和RSA算法将密文解密,再把明文用sha1算法计算散列值,两相对比,判断信息正误。

2、php代码

*/

/*

* 签名:基于sha1withRSA算法,将明文生成签名串

*

* $filePath 证书的路径

* $password 私钥的密码

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

* @return string 签名串,使用base64_算法加密

*/

function sign($data){

$filePath = '123.pfx';

$password = '123456';

$certs = array();

openssl_pkcs12_read(file_get_contents($filePath), $certs, $password);

if($certs) return ;

$signature = '';

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

return base64_encode($signature);

}

/*

* 验签:基于sha1withRSA算法,验证签名串的正误

*

* $filePath 证书的路径

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

* @param $signature 签名串

* @return bool 1成功,0失败

*

*/

function verify($data,$signature){

$filePath = '456.pem';

$pem = openssl_get_publickey(file_get_contents($filaPath));

if(!$pem) return ;

$result = (bool) openssl_verify($data, base64_decode($signature), $pem);

retun $result;

}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值