鍍金池/ 問答/PHP/ 接口生成簽名為空的問題

接口生成簽名為空的問題

總是提示openssl_sign(): supplied key param cannot be coerced into a private key。我換了系統(tǒng)本機(jī)是WIN7,在linux系統(tǒng)下也不行?
網(wǎng)絡(luò)上面有人說,在沙箱中,私鑰需要轉(zhuǎn)化,我直接在正式的環(huán)境中也報錯。同時在支付寶中公鑰驗(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('您使用的私鑰格式錯誤,請檢查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位,同時環(huán)境是phpstudy

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

回答
編輯回答
懶豬

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

2017年2月15日 21:18