作者q10242 (黑田佑司)
看板PHP
标题[请益] openssl_public_encrypt成功decrypt失败
时间Thu Feb 8 13:22:35 2018
为了加解密 我写了两个function
这是加密
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;
}
这是解密
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;
}
我用同样的public key 加密没问题
不过收到对方用private key 加密的密文後
用同样的public key
openssl_public_decrypt解密却一直失败
回传值都是false
请问openssl_public_decrypt会失败是因为public key的关系
还是密文错误也会有影响?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 180.176.128.70
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1518067358.A.413.html
1F:→ guardlan: 我怎麽记得私钥是拿来解密 公钥才是拿来加密的? 你反了? 02/08 15:09
2F:推 LPH66: 公开金钥加密系统可以用任一个加密另一个解密 02/08 15:42
3F:→ LPH66: 公私的差别单纯就是你有没有公开而已 02/08 15:42
4F:→ LPH66: 两者各有用途, 公钥加密是确定目标, 私钥加密是确定来源 02/08 15:44
我自己解了
是长度问题
要128不能125
※ 编辑: q10242 (180.176.128.70), 02/08/2018 16:53:54