作者superlubu (叔叔你人真好)
看板java
标题Re: [问题] 看不懂讯息~~请大大帮忙解答
时间Thu Dec 6 08:35:54 2007
: 推 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
而花无谓的精力在这一方面。
--
《为了要得到真相,就要向原 PO 伸图》
那就是伸图魔人的没图没真相原则,那时我们坚信那就是逼逼死的真实
靠么,图咧?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 147.8.130.225
1F:推 icemask:那请问一下有什麽好方法呢? 12/06 19:56
2F:→ icemask:我已经想不到有什麽方法了 12/06 19:56
3F:推 superlubu:就用 CipherInputStream/OutputStream 啊 = = 12/06 20:44
4F:推 icemask:不是不想用阿~~只是我用CipherIOStream~~~档案会是空的阿 12/06 20:52
5F:→ icemask:就是因为这样~~我才会用cipher.doFinal(); 12/06 20:53
6F:推 superlubu:做 CipherOutputStream 时要先 flush COS 再 flush FOS 12/06 22:11
7F:推 icemask:那是什麽东西~~第一次看到~~能介绍一下吗 12/06 22:46
8F:推 qrtt1:您要家教费给 superlubu 吗@@? 12/06 22:52
9F:推 superlubu:COS -> CipherOutputStream, FOS -> FileOutputStream 12/07 05:05
10F:→ superlubu:我只是懒得再打 12/07 05:06