设为首页 加入收藏

TOP

Android平台和java平台 DES加密解密互通程序及其不能互通的原因
2014-11-24 10:31:33 】 浏览:4740
Tags:Android 平台 java DES 加密解密 互通 程序 及其 不能 原因

今天部门的另外一个同事跟我说了一下,才解决了这个不能互通的问题。


调用DES加密算法包最精要的就是下面两句话:


Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");


cipher.init(Cipher.ENCRYPT_MODE, key, zeroIv);


CBC是工作模式,DES一共有电子密码本模式(ECB)、加密分组链接模式(CBC)、加密反馈模式(CFB)和输出反馈模式(OFB)四种模式,


PKCS5Padding是填充模式,还有其它的填充模式:


然后,cipher.init()一共有三个参数:Cipher.ENCRYPT_MODE, key, zeroIv,zeroIv就是初始化向量,一个8为字符数组。


工作模式、填充模式、初始化向量这三种因素一个都不能少。否则,如果你不指定的话,那么就要程序就要调用默认实现。问题就来了,这就与平台有关了。难怪网上一搜"DES加密结果不一致“,出现n多网页结果。(之前我并没有指定IV,被折磨了2周)


源程序如下(从java平台到android平台,我根本没有更改一行代码):


另外,一般情况下,加密后的结果都会用base64编码进行传输。


java平台:


主程序


用到的DES加密类


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Android Bundle类 下一篇Android中采用的MVC框架

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目