首页 > 其他 > 详细

RC4加密解密

时间:2014-03-28 11:56:53      阅读:655      评论:0      收藏:0      [点我收藏+]

  今天丹伟兄让我尝试一下RC4算法加密解密。之前AES解密出来各种「锟斤拷」我已接近崩溃。

  这个RC4相比AES就轻量多了,不用导入各种类,连keygen的步骤也没有,只经过一系列可见的数学运算,而且加密解密用一套算法。轻车熟路地把代码弄过来,又出现了直接在内存中读取加密数据并且解密能够成功,但是先「落地」写到文件里再读取解密就不行的情况。

  丹伟兄建议我用把内存中的东西弄出来跟读取的东西对比一下。

  但是刚才遇到一个需要注意的地方:

1.

1
2
3
4
5
6
7
8
9
            String line = null ;
//          String content = null ;
            String content = "";
            while(true)
            {
                line = br.readLine();
                if(line == null ) break;
                content = content + line ;
            }

  这里用BufferedReader的Readline方法,但是要注意content这里不能定义成null,不然会读完之后content的内容会变成nullxxxxx...最前面有个「null」。

2.用OutStreamWriter输出,指定字符编码,如果指定成UTF-8,像这样:

1
OutputStreamWriter osw = new OutputStreamWriter(os,Charset.forName("UTF-8"));

  就会出现这种情况:

bubuko.com,布布扣

「准备写入的」和「读取的」已经不一样了。。。这样就别解密了。 

Unicode输出,是这种情况:

bubuko.com,布布扣

可以看出,「准备写入文件的」是相同的。但是一旦用不同的编码写进文件,读出来就不一样了。

ASCII:

bubuko.com,布布扣

GBK:

bubuko.com,布布扣

 

正常了。另外,GB2312也不正常。

为什么只有GBK是正常的?想起昨天「师妹」提到的Eclipse的默认编码,是不是因为他的默认编码是GBK呢?

bubuko.com,布布扣

改了之后Android自动更新各种R.java...我担心它变不回来了(结果是可以变回来的)。

bubuko.com,布布扣

 

 明天继续,一定把这东西搞清楚。

RC4加密解密,布布扣,bubuko.com

RC4加密解密

原文:http://www.cnblogs.com/larrylawrence/p/3629330.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!