作者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
1F:推 now99:base64 解回来? 05/28 10:30
2F:→ now99:你加密 base64 还要再用base64解回来 05/28 10:32
3F:→ buubuu:应该不是 data的内容是base64编码 decodefile应该也是 05/28 13:40
4F:→ buubuu:base64编码 但是加解密完的内容却不一样QQ 05/28 13:42
5F:推 zeat:为什麽还要透过base64编码一次? 05/28 13:51
6F:→ buubuu:因为我要把档案初始化的内容显示出来 05/28 16:30
7F:推 samp761001:我没有用base64那段 解回来是正常的 06/03 00:26