php openssl_public_encrypt(): 键参数不是有效的 public 键

php openssl_public_encrypt(): key parameter is not a valid public key

function encrypt($string) {

    $key = "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAIiJg//yXqt7ln+orfSuRjH0FjTKQyj6ti2tX8PR8yhvoeocfHg0RtBNBJFaghoezGgbsmsUcac8GSgoiL9kzzMCAwEAAQ==";

    $keyFinal = "-----BEGIN PUBLIC KEY-----\r\n" . chunk_split($key) . "\r\n-----END PUBLIC KEY-----";

    openssl_public_encrypt($string, $encrypted_data, $keyFinal);

    echo base64_encode($encrypted_data); 
}

(我尝试的每个其他键也都出现相同的错误)

我正在尝试使用 rsa 加密字符串,但出现错误(openssl_public_encrypt():密钥参数不是有效的 public 密钥)

我已经尝试了好几个小时了,请帮忙

函数 chunk_split 包含一个尾随分隔符,在您的例子中是 \r\n。所以在你的情况下,只是不要连接一个额外的。

改变这个:

$keyFinal = "-----BEGIN PUBLIC KEY-----\r\n" . chunk_split($key) . "\r\n-----END PUBLIC KEY-----";

为此:

$keyFinal = "-----BEGIN PUBLIC KEY-----\r\n" . chunk_split($key) . "-----END PUBLIC KEY-----";