文一:DES
概述
IBM 公司于 1975 年研究成功并公开发表,1977 年 1 月,美国政府颁布:采纳 IBM 公司设计的方案作为非机密数据的正式数据加密标准(Data Encryption Standard)。
JAVA 中的实现
Cipher 类为加密和解密提供密码功能。它构成了 Java Cryptographic Extension (JCE) 框架的核心。
为创建 Cipher 对象,应用程序调用 Cipher 的 getInstance 方法并将所请求转换 的名称传递给它。还可以指定提供者的名称(可选)。
转换 是一个字符串,它描述为产生某种输出而在给定的输入上执行的操作(或一组操作)。转换始终包括加密算法的名称(例如,DES),后面可能跟有一个反馈模式和填充方案。
转换具有以下形式:
“算法/模式/填充”或“算法”(后一种情况下,使用模式和填充方案特定于提供者的默认值)。例如,以下是有效的转换:
Cipher c = Cipher.getInstance("DES/CBC/PKCS5Padding");
文二:3DES/Triple DES/DESede
概述
3DES(或称为 Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称。它相当于是对每个数据块应用三次 DES 加密算法。由于计算机运算能力的增强,原版 DES 密码的密钥长度变得容易被暴力破解;3DES 即是设计用来提供一种相对简单的方法,即通过增加 DES 的密钥长度来避免类似的攻击,而不是设计一种全新的块密码算法。
算法原理
使用 3 条 56 位的密钥对 数据进行三次加密。3DES(即 Triple DES)是 DES 向 AES 过渡的加密算法(1999 年,NIST 将 3-DES 指定为过渡的加密标准)。
其具体实现如下:设 Ek()和 Dk()代表 DES 算法的加密和解密过程,K 代表 DES 算法使用的密钥,P 代表明文,C 代表密文,这样:
3DES 加密过程为:C=Ek3(Dk2(Ek1(P)))
3DES 解密过程为:P=Dk1(EK2(Dk3(C)))
猜测 Java 中给 3DES 取名为 DESede 的原因或许是因为算法原理是 e d e
JAVA 中的实现
Cipher c = Cipher.getInstance("DES/CBC/PKCS5Padding");
Cipher cipher = Cipher.getInstance(DESede);
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于