【发布时间】:2018-02-08 05:01:30
【问题描述】:
我得到了一个公钥和一条消息,
$msg = "blablabla";
$public = '-----BEGIN PUBLIC KEY-----
(some normal public key)
-----END PUBLIC KEY-----';
RsaEncode 可以加密
我对消息进行 RSA 编码
function RsaEncode($msg,$publicKey){
$temp = str_split($msg,117);
$payload = array();
foreach ($temp as $key => $value) {
openssl_public_encrypt($value, $encrypted, $publicKey);
array_push($payload, $encrypted);
}
$payload =implode($payload);
$payload= base64_encode($payload);
return $payload;
}
这个函数返回OK,我编码成功, 在我发送结果后,我收到了一个用私钥加密的响应 $response。
所以我用公钥对其进行解码:
function RsaDecode($response,$publicKey){
$payload = array();
$payload2 = base64_decode($response);
$temp = str_split($payload2,125);
foreach ($temp as $key => $value) {
openssl_public_decrypt($value, $encrypted, $publicKey);
array_push($payload, $encrypted);
}
$payload =implode($payload);
$result = utf8_encode($payload);
return $result;
}
$publicKey 与 $publicKey 相同,
声明:
openssl_public_decrypt($value, $encrypted, $publicKey);
总是返回 false。
我该如何解决?
【问题讨论】:
标签: php rsa public-key