作者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://www.ptt.cc/bbs/PHP/M.1518067358.A.413.html
→ guardlan: 我怎麼記得私鑰是拿來解密 公鑰才是拿來加密的? 你反了? 02/08 15:09
推 LPH66: 公開金鑰加密系統可以用任一個加密另一個解密 02/08 15:42
→ LPH66: 公私的差別單純就是你有沒有公開而已 02/08 15:42
→ LPH66: 兩者各有用途, 公鑰加密是確定目標, 私鑰加密是確定來源 02/08 15:44
我自己解了
是長度問題
要128不能125
※ 編輯: q10242 (180.176.128.70), 02/08/2018 16:53:54