[問題] openssl RSA 分段解出來字尾會有亂碼

看板C_and_CPP (C/C++)作者 (3O6p)時間10年前 (2015/10/14 18:15), 10年前編輯推噓7(702)
留言9則, 4人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VS2012 C++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) Openssl RSA 問題(Question): 因為明文會超過可加密長度 所以我有使用分段加密 當我分別解密完後合起來 我的明文會是正確的 但是就是我的明文後會出現一串亂碼 原因可能是解密完的明文後面沒有結束字元 這是我使用有錯誤嗎 還是本來就會這樣 有什麼辦法改進嗎 餵入的資料(Input): 密文 預期的正確結果(Expected Output): 明文 錯誤結果(Wrong Output): 明文+亂碼 程式碼(Code):(請善用置底文網頁, 記得排版) 不方便公開 補充說明(Supplement): 感謝各位高手大大 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.134.59.89 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1444817723.A.8F5.html

10/14 23:45, , 1F
你知道原本字串長度嗎?
10/14 23:45, 1F
不能知道明文長度

10/14 23:46, , 2F
你再放入明文的buffer array有事先清乾淨嗎??
10/14 23:46, 2F
有清乾淨

10/14 23:46, , 3F
只拿前面就好了
10/14 23:46, 3F

10/14 23:47, , 4F
哦 覺得2樓比較有道理
10/14 23:47, 4F

10/15 00:32, , 5F
感覺是你少拿終止符號
10/15 00:32, 5F

10/15 02:11, , 6F
或許是沒有拿終止符下去做密文
10/15 02:11, 6F
這個我試試看 ※ 編輯: autumnk (220.134.59.89), 10/15/2015 10:29:39 都沒有用,不過我後來在看了一下 如果我的加密長度不需要切割的話 才會有機會出現亂碼 如果要切割的話就比較不會 而且出現亂碼在一開始出現的機率比較高 如果程式跑了一下後 就比較不會出現亂碼 ※ 編輯: autumnk (220.134.59.89), 10/15/2015 11:35:14

10/15 12:27, , 7F
你可以在密文的第一個byte記錄長度啊
10/15 12:27, 7F

10/15 14:42, , 8F
嗯 機率性出錯 我猜變數沒初始化或取值超出陣列長度
10/15 14:42, 8F
我有初始化,想問一下有RSA明文切割後的加解密範例嗎 想參考一下 ※ 編輯: autumnk (220.134.59.89), 10/17/2015 14:07:36 解決了,主要是在明文切割最後一筆時 要在後面一筆尾巴加入結束字元 我之前都是將結束位元加在陣列的最後一個位元 所以才會出錯 感謝各位高手幫我解答 ※ 編輯: autumnk (220.134.59.89), 10/19/2015 15:40:57

10/20 01:26, , 9F
我建議你長度最好是設 length + 1然後最後一個位元補'\0'
10/20 01:26, 9F
文章代碼(AID): #1M7YixZr (C_and_CPP)
文章代碼(AID): #1M7YixZr (C_and_CPP)