[請益] openssl_public_encrypt成功decrypt失敗

看板PHP作者 (黑田祐司)時間6年前 (2018/02/08 13:22), 6年前編輯推噓1(103)
留言4則, 2人參與, 6年前最新討論串1/1
為了加解密 我寫了兩個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

02/08 15:09, 6年前 , 1F
我怎麼記得私鑰是拿來解密 公鑰才是拿來加密的? 你反了?
02/08 15:09, 1F

02/08 15:42, 6年前 , 2F
公開金鑰加密系統可以用任一個加密另一個解密
02/08 15:42, 2F

02/08 15:42, 6年前 , 3F
公私的差別單純就是你有沒有公開而已
02/08 15:42, 3F

02/08 15:44, 6年前 , 4F
兩者各有用途, 公鑰加密是確定目標, 私鑰加密是確定來源
02/08 15:44, 4F
我自己解了 是長度問題 要128不能125 ※ 編輯: q10242 (180.176.128.70), 02/08/2018 16:53:54
文章代碼(AID): #1QUzwUGJ (PHP)