PHP 在做RSA簽名的時候出現openssl sign(): supplied key param cannot be coerced into a private key這個問題
PHP RSA 報錯
openssl_sign(): supplied key param cannot be coerced into a private key
原因:
本地測試正常,伺服器報錯
使用測試資料和測試秘鑰,本地和伺服器都正常
吧這段代碼
private function setupPrivKey()
{
if (is_resource($this->_privKey)) {
return true;
}
$pem = chunk_split($this->privateKey, 64, "\n");
$pem = "-----BEGIN PRIVATE KEY-----\n" . $pem . "-----END PRIVATE KEY-----\n";
$this->_privKey = openssl_pkey_get_private($pem);
return true;
}
更換成:
private function setupPrivKey()
{
if (is_resource($this->_privKey)) {
return true;
}
$pem = chunk_split($this->privateKey, 64, "\n");
$pem = "-----BEGIN RSA PRIVATE KEY-----\n" . $pem . "-----END RSA PRIVATE KEY-----\n";
$this->_privKey = openssl_pkey_get_private($pem);
return true;
}
基本上就能解決問題