看板 java 關於我們 聯絡資訊
我要加密一個檔案 已知道 公鑰(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