ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 网络编程 >> 其他编程教程 >> openssl 签名和验签不符的几个原因

openssl 签名和验签不符的几个原因

来源:网络整理     时间:2018-10-31     关键词:

本篇文章主要介绍了" openssl 签名和验签不符的几个原因",主要涉及到方面的内容,对于其他编程教程感兴趣的同学可以参考一下: 先附上签名的代码$privateKeyFile = '/data/private.pem';$password = '123456';$privateKey =...

先附上签名的代码

$privateKeyFile = '/data/private.pem';
$password = '123456';
$privateKey = file_get_contents($privateKeyFile);	
$pKeyId = openssl_pkey_get_private($privateKey, $password);
openssl_sign($xmlSignSrc, $signature, $pKeyId);
openssl_free_key($pKeyId);
$signature = bin2hex($signature);

先附上验签的代码

	public function verifyStr($orgStr,$signature){
		echo '签名原文:'.$orgStr;
		$pubKeyId = openssl_get_publickey(file_get_contents($certFile));
		$flag = (bool) openssl_verify($orgStr, hex2bin($signature), $pubKeyId);
		openssl_free_key($pubKeyId);
		
		if ($flag) {
			echo '<br/>Verified: <font color=red>SUCC</font>.';
		    return TRUE;
		} else {
		    echo '<br/>Verified: <font color=red>Failed</font>.';
		    return FALSE;
		}
	}

 首先要保证证书是 pem 格式的,用记事本打开如以下格式:


 openssl 签名和验签不符的几个原因

如果打开的是乱码,说明不是pem格式的证书,要把它转换成 pem 格式,举个例子:如果是 cer 格式,转换命令如下:

openssl x509 -inform DER -in allinpay-pds.cer  -out allinpay-pds.pem

如果是 p12 格式证书转换,则有多种可能,得出的是两个稍有不同的代码

openssl pkcs12 -clcerts -nokeys -out cer.pem -in 20058100001485304.p12 


 openssl 签名和验签不符的几个原因

openssl pkcs12 -clcerts -nodes -out cer.pem -in 20058100001485304.p12


 openssl 签名和验签不符的几个原因

具体证书转换流程,可借助搜索引擎研究下。另外,验签出错可能还和你的域名有关。

补充点SSL证书的知识:https://help.aliyun.com/knowledge_detail/42216.html

以上就介绍了 openssl 签名和验签不符的几个原因,包括了方面的内容,希望对其他编程教程有兴趣的朋友有所帮助。

本文网址链接:http://www.codes51.com/article/detail_4595488.html

相关图片

相关文章