总是提示openssl_sign(): supplied key param cannot be coerced into a private key。我换了系统本机是WIN7,在linux系统下也不行?
网络上面有人说,在沙箱中,私钥需要转化,我直接在正式的环境中也报错。同时在支付宝中公钥验签成功。
$priKey=$this->rsaPrivateKey;
$res = "-----BEGIN RSA PRIVATE KEY-----" .PHP_EOL.
wordwrap($priKey, 64, "\n", true) .PHP_EOL.
"-----END RSA PRIVATE KEY-----";
($res) or die('您使用的私钥格式错误,请检查RSA私钥配置');
if ("RSA2" == $signType) {
openssl_sign($data, $sign, $res, version_compare(PHP_VERSION,'5.4.0', '<') ? SHA256 : OPENSSL_ALGO_SHA256);
} else {
openssl_sign($data, $sign, $res);
}
$sign = base64_encode($sign);
return $sign;
在本机是WIN7 64位,同时环境是phpstudy
我在OS上面提问好久都没有回,不知道是什么原因,一点方向都没有了。
私钥格式不正确,看你代码是拼接最后多了换行符,去掉一个试试