浅谈PHP SHA1withRSA加密生成签名及验签(2)
你要问我为什么私钥是bin2hex(),公钥换了base64_encode()。我也不知道为什么,问过说是16位,但是请求签名一直失败,换了64成功了。对方说文档太老了,忘记了。。根据需要选择吧
最后回调结果验签
首先先将回调数据中组装签名字段的内容取出来,按上面的getSign()方法排序。
然后进行验证:
/**
* 验证返回的签名是否正确
*
* @param string $data 要验证的签名原文
* @param string $signature 签名内容
*@param $pubPath 公钥证书位置 (.cer文件)
*
* @return bool
*/
public static function verifyRespondSign($data, $signature,$pubPath)
{
$keys = self::loadCert($pubPath);
$signature = hex2bin($signature);
$ok = openssl_verify($data, $signature, $keys);
if ($ok == 1) {
return true;
}
return false;
}
以上所述是小编给大家介绍的PHP SHA1withRSA加密、签名及验签的全部内容了,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对黑区网络网站的支持!
