鍍金池/ 問(wèn)答/PHP/ 接口生成簽名為空的問(wèn)題

接口生成簽名為空的問(wèn)題

總是提示openssl_sign(): supplied key param cannot be coerced into a private key。我換了系統(tǒng)本機(jī)是WIN7,在linux系統(tǒng)下也不行?
網(wǎng)絡(luò)上面有人說(shuō),在沙箱中,私鑰需要轉(zhuǎn)化,我直接在正式的環(huán)境中也報(bào)錯(cuò)。同時(shí)在支付寶中公鑰驗(yàn)簽成功。

    
       
        $priKey=$this->rsaPrivateKey;
        $res = "-----BEGIN RSA PRIVATE KEY-----" .PHP_EOL.
            wordwrap($priKey, 64, "\n", true) .PHP_EOL.
            "-----END RSA PRIVATE KEY-----";
        ($res) or die('您使用的私鑰格式錯(cuò)誤,請(qǐng)檢查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;

在本機(jī)是WIN7 64位,同時(shí)環(huán)境是phpstudy

我在OS上面提問(wèn)好久都沒(méi)有回,不知道是什么原因,一點(diǎn)方向都沒(méi)有了。

回答
編輯回答
懶豬

私鑰格式不正確,看你代碼是拼接最后多了換行符,去掉一個(gè)試試

2017年2月15日 21:18