Re: [問題] 看不懂訊息~~請大大幫忙解答
※ 引述《superlubu (叔叔你人真好)》之銘言:
: : 推 icemask:大大~~我剛剛有測出來了~~加密之後會117byte->128byte 12/05 20:28
: : → icemask:這樣解密用128byte就可以了~~可是解出來的檔還是亂碼~~~ 12/05 20:29
: : → icemask:是哪邊有錯嗎 12/05 20:30
: : 推 icemask:http://www.cyut.edu.tw/~s9327122/RSA.txt 12/05 20:42
: : → icemask:這是我改過的程式~~請你看一下 12/05 20:42
: 我之所以不推薦你這樣的寫法,是因為下面兩個理由:
: 1. InputStream.read(byte[]) 並不是你把 buffer 設成 117,它就一定能讀進
: 117 個 bytes,到頭來你必需每次都先確認它讀進了多少。
: 2. 就算你每次都可以讀得到 117 bytes 進去,但讀到最後一組時必定會出現問
: 題,因為絕不會剛好每個檔案的 size 都是 117 的倍數。
: 以上兩點,在加密時也好,在解密亦好,也必定會發生,於是加密時把不必要的東西
: 加密了,解密時也把不必要的東西解密了,亂碼的出現幾乎是必然的。
: 除非你真的很想自己處理這一切東西,不然我仍然不建議棄現有的 Cipher IOStream
: 而花無謂的精力在這一方面。
-----------------------------------------------------------------------------
FileOutputStream fout=new FileOutputStream(fon);
CipherOutputStream out=new CipherOutputStream(fout,cipher);
byte[] buffer=new byte[117];
int length;
while((length=in.read(buffer))!=-1){
out.write(buffer,0,length);
}
我之前有寫這樣過,可是檔案無法輸出,所以我才會用doFinal()這個方法
還是我寫的方法有錯,請大大指教
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.132.214.70
推
12/07 19:58, , 1F
12/07 19:58, 1F
→
12/07 20:00, , 2F
12/07 20:00, 2F
→
12/07 20:01, , 3F
12/07 20:01, 3F
推
12/08 00:52, , 4F
12/08 00:52, 4F
→
12/08 00:54, , 5F
12/08 00:54, 5F
推
12/08 06:32, , 6F
12/08 06:32, 6F
推
12/08 11:44, , 7F
12/08 11:44, 7F
推
12/08 11:55, , 8F
12/08 11:55, 8F
→
12/08 11:56, , 9F
12/08 11:56, 9F
討論串 (同標題文章)