欢迎访问WDPHP素材源码站!又是一个不眠夜!
您好,游客 [ 马上登录 | 注册帐号 | QQ登录]
当前位置:首页 > 教程 > PHP教程 > 

php基于sha1withRSA算法的签名、验签、加密(pfx证书)
栏目分类:PHP教程    发布日期:2018-12-06    浏览次数:1046次     收藏

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

/**
 * 签名  生成签名串  基于sha1withRSA
 * @param string $data 签名前的字符串
 * @return string 签名串
 * @link www.wdphp.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.wdphp.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;
}

使用私钥加密:

/**
 * 加密
 * @param $data 签名前的原字符串
 * @return string 加密结果
 * @link www.wdphp.com
 */
	public function encrypt($data){
		openssl_pkcs12_read(file_get_contents("你的.pfx文件路径"), $certs, "你的.pfx密码");
		if(!$certs) return ;
		openssl_private_encrypt($data, $encrypted, $certs['pkey']);
		return  base64_encode($encrypted);
	}
声明:本文为原创文章,如需转载,请注明来源 WDPHP.COM 并保留原文链接:https://www.wdphp.com/detail/1661.html
评论0
头像 游客
友情提示:评论成功赠送5积分(每日前3次),刷评论扣8积分!
Copyright © 2016-2018 wdphp.com 版权所有   本站由WDPHP网站管理系统强力驱动  陕ICP备16002142号
网站首页 | 交流社区 | 关于我们 | 仿站定制 | 积分获取 | 广告投放 | WPS/云主机 | 站点地图
特效 资源 源码 模板 素材 教程 站长