// 生成
protected function rsaSign($data, $signType = "RSA")
{
// $res = "-----BEGIN RSA PRIVATE KEY-----\n" .
// wordwrap($rsaPrivateKey, 64, "\n", true) .
// "\n-----END RSA PRIVATE KEY-----";
$res = self::SY;
($res) or die('您使用的私钥格式错误,请检查RSA私钥配置');
if ("RSA2" == $signType) {
openssl_sign($data, $sign, $res, OPENSSL_ALGO_SHA256);
} else {
openssl_sign($data, $sign, $res);
}
$sign = base64_encode($sign);
return $sign;
}
//验证
public function pay_verify($data)
{
$signResult = $data["sign"];
unset($data["sign"]);
$signContent = $this->getSignContent($data);
$sxfPublic = '公钥';
$verify = $this->verify($signContent, $signResult, $sxfPublic);
if ($verify) {
return true;
// echo("验签成功");
} else {
return false;
// echo("验签失败");
}
}
public function getSignContent($params)
{
ksort($params);
$stringToBeSigned = "";
foreach ($params as $k => $v) {
$isarray = is_array($v);
if ($isarray) {
$stringToBeSigned .= "$k" . "=" . json_encode($v, 320) . "&";
} else {
$stringToBeSigned .= "$k" . "=" . "$v" . "&";
}
}
unset ($k, $v);
$stringToBeSigned = substr($stringToBeSigned, 0, strlen($stringToBeSigned) - 1);
// echo "拼接:" . $stringToBeSigned;
// echo "<br><br><br><br><br>";
return $stringToBeSigned;
}
PHP 中RSA和RSA2的使用
原创
©著作权归作者所有:来自51CTO博客作者喝茶研墨的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章