作者buubuu (buu)
看板java
標題[問題] RSA 加解密
時間Thu May 28 04:16:06 2009
我要加密一個檔案 已知道 公鑰(n,e) 私鑰(n,d)
我先用FileInputStream(檔案)讀進檔案
然後存到一個陣列中byte[] filecontent
再用base64 編碼成一個字串
String data=new sun.misc.BASE64Encoder().encode(filecontent);
接下來進行
[RSA加密]
byte[] encodingbyte = data.getBytes();//先把剛剛的字串轉byte[ ]
RSAEngine() rsa = new RSAEngine();
rsa.init(true, new RSAKeyParameters(false,n,e));
enRSAcode =rsa.processBlock(encodingbyte, 0, encodingbyte.length);
[RSA解密]
RSAEngine rsa = new RSAEngine();
rsa.init(false, new RSAKeyParameters(true,n,d));
deRSAcode = rsa.processBlock(enRSAcode, 0, enRSAcode.length);
String decodefile = new String(deRSAcode);
問題來了
我最後解密完的decodedfile內容 我把它印出來
卻跟我原來拿去加密的那個data的內容不一樣
請問為什麼為這樣呢? 比如說 拿去加密的字串String data = "qvy6T6uifn4NCg"
但解密完的decodefile應該也要是"qvy6T6uifn4NCg"
但我解密完卻是一堆有點像中文的亂碼 囧
我google好久 還是不知道為什麼> < 也看了RSAEngine( ) 的API了
謝謝各位大大 > <
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.139.133.87
推 now99:base64 解回來? 05/28 10:30
→ now99:你加密 base64 還要再用base64解回來 05/28 10:32
→ buubuu:應該不是 data的內容是base64編碼 decodefile應該也是 05/28 13:40
→ buubuu:base64編碼 但是加解密完的內容卻不一樣QQ 05/28 13:42
推 zeat:為什麼還要透過base64編碼一次? 05/28 13:51
→ buubuu:因為我要把檔案初始化的內容顯示出來 05/28 16:30
推 samp761001:我沒有用base64那段 解回來是正常的 06/03 00:26