碰到的一个编码问题

系统有两个子系统,一个是BS的,一个是delphi做的CS,中间的数据传输是通过XML进行传输的。在XML传输的功能实现后,要求对XML进行加密解密.加密解密算法是CS端用delphi写的,然后这边用JAVA写个同样的算法。现在碰到的一个问题是:
用该算法的时候,CS和BS各自都能够加解密,我这边的过程是这样的。我这边解密的过程是这样的,首先获取到CS那边的加密文件,然后通过 [code]
StringBuffer strbuf = new StringBuffer();
try {
FileInputStream in = new FileInputStream(file);
int size = 0;
byte [] buf = new byte[1024];
while ((size=in.read(buf)) != -1) {
strbuf.append(new String(buf,0,size));
}

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
return strbuf;
[/code]
在得到返回的StringBuffer的基础上,对StringBuffer进行解密操作。
[code] StringBuffer xmlStr=new StringBuffer("");
xmlStr.append(encode.UnEncryptString(readBuf,key));[/code]
然后在得到解密后的字符串写入XML文件
有两种方式,一种是写入普通 ,另外一种是采用dom4j提供的字符串转XML的方式
[code]
Document doc = DocumentHelper.parseText(xmlStr.toString());
OutputFormat format = OutputFormat.createPrettyPrint();
FileOutputStream writefile=new FileOutputStream(importFile);//输出流,用来接受生成的xml表示的doc
format.setEncoding("UTF-8");
XMLWriter writer=new XMLWriter(writefile,format);
writer.write(doc);
[/code]
最终不管我采用什么方式结论是中文始终是乱码。
我想问的问题是
1. 如果双方导入导出的都是标准的XML文件(UTF-8),在此基础上进行加密,
那么在以后读取与写入文件(无论是字节流还是字符流或其他的)过程中,是不是都不涉及到转碼的 问题。
2.在此过程中,正常的情况编码可能需要变化的是什么地方。
3.一个前提是算法没有问题,单独的不涉及文件存储,双方是可以互加解密。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值