3DES算法原理写成Android/java形式
来源:互联网 发布:网络征婚投资 编辑:程序博客网 时间:2024/05/18 20:10
1. 解释
3DES算法是DES加密算法的一种模式,使用3条64位(56位有效)的秘钥对数据进行三次加密。也就是说,我们可以直接使用上一篇Android/java源代码实现DES算法原理+整理 的方法类的基础上来写3DES算法。
3DES是DES向AES过渡的加密算法。
设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的秘钥,M代表明文,C代表密文,这样:
3DES加密过程为:C=Ek3(Dk2(Ek1(M)))
3DES解密过程为:M=Dk1(EK2(Dk3(C)))
2. 3DES算法原理写成java/Android
/** * 3DES算法 */public void My3DES(){String key1 = "qwertyui";String key2 = "asdfghjk";String key3 = "原始秘钥";String data = "原始数据";data = "x朱y小z姐。";//以下是3DES加密过程this.bytekey = key1.getBytes();byte[] r1 = DesEncrypt(data.getBytes(), 1);//Ek1(M)this.bytekey = key2.getBytes();byte[] r2 = DesEncrypt(r1, 0);//Dk2(Ek1(M))this.bytekey = key3.getBytes();byte[] r3 = DesEncrypt(r2, 1);//Ek3(Dk2(Ek1(M)))//加密完成后,尚有填充位未去掉,可以在解密的时候直接处理,这里暂时不处理。不影响使用以及解密//下面是解密过程this.bytekey = key3.getBytes();byte[] dr1 = DesEncrypt(r3, 0);//Dk3(C)this.bytekey = key2.getBytes();byte[] dr2 = DesEncrypt(dr1, 1);//EK2(Dk3(C))this.bytekey = key1.getBytes();byte[] dr3 = DesEncrypt(dr2, 0);//Dk1(EK2(Dk3(C)))byte[] newDeResult = new byte[data.getBytes().length];System.arraycopy(dr3, 0, newDeResult, 0, newDeResult.length);//巧妙过滤填充位MyUtils.log("解密后密文="+new String(newDeResult));}
3. 运行结果
0 0
- 3DES算法原理写成Android/java形式
- Android/java源代码实现DES算法原理+整理
- Android实现DES和3DES算法
- DES & 3DES算法
- DES算法原理详述
- DES算法原理完整版
- DES算法原理
- java 3des des
- DES加密/解密算法原理
- C#和Java的3DES算法
- Java.DES算法
- Java DES 算法加密
- java实现DES算法
- JAVA语言DES算法
- 3DES 原理
- android实现DES算法和java不兼容的问题解决...
- Java、Android和iPhone 3DES加密
- android java 3des加密 ECB/CBC
- hive表定义
- LeetCode[235] Lowest Common Ancestor of a Binary Search Tree
- 筋斗云教程(二): 系统分析与设计
- PHP Excel导入和导出
- C#线程
- 3DES算法原理写成Android/java形式
- 浅谈UML中类之间的五种关系及其在代码中的表现形式
- mysql doc 网址
- Codeforces 652D(一维树状数组)
- unity 彩虹灯效果
- 操作系统--内存学习笔记(2)进程内存管理--虚拟内存
- BZOJ3675 Apio2014 序列分割
- UICollectionView 高级进阶篇
- Xcode8更新后的一些问题解决