求肋:64位解密问题

aptweasel 2007-01-31 05:07:50
先看代码:
import java.util.List;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Multipart;
public class TestRec {
private static String base64Decoder(String s) throws Exception {
sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder();
byte[] b = decoder.decodeBuffer(s);

return (new String(b));
}

public static void main(String[] args) {
// TODO Auto-generated method stub

String host="pop3.163.com";
String name="weasel100";
String password="4206211983";

Receiver rec=new Receiver();
String st="?gbk?Q?=B5=DA6=D5=C2___Interne?= =?gbk?Q?t=D3=A6=D3=C3=B7=FE=CE=F1=C6=F7=B5=C4=C5=E4=D6=C3_.ppt?=";
String st2="?gb2312?B?yc+w4C5zd2Y=?="; //上班.swf3

try {
String[] add=st2.split(" ");
String stadd="";
for(int i=0;i<add.length;i++){
stadd=stadd+add[i].substring(11, add[i].lastIndexOf("?=") - 1);
System.out.println("原文:"+stadd);
}

String fileName = base64Decoder(stadd);
System.out.println("译文:"+fileName);
} catch (Exception e) {
e.printStackTrace();
}
}
}


以上是我用来测试的代码, String st2可以正常译出来,它是GK2312,但是我有另外一个文件名被加密后却做成了GBK,而且是中文,字段中有空格。我应当如何才能译出来。如字段 String st,它的源文件名是:第6章 Internet应用服务器的配置 .ppt
...全文
344 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
m0317045 2007-01-31
  • 打赏
  • 举报
回复
这个,这个.....
应该要先搞清楚加密的模式吧,或者padding,
应该根据模式来写代码解吧?!
而且通常用到security包,
(前提是java加的密)
俺现在在学java密码
但是好象跟你上面的有点不一样,
帮你顶,
aptweasel 2007-01-31
  • 打赏
  • 举报
回复
这里我写收163.COM的邮件时,附件出现的乱码,因为163.COM主要用的GB2312,部分用到GBK的就会出现乱码。中文字符中间有空格也无法转。

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧