3DES 介绍
上篇文章已经介绍了 DES 算法的使用,并且也提到,在计算机计算速度特别快的今天,要破解 DES 加密过后的数据是完全有可能做到的,为什么呢?因为 DES 算法的密钥 也就64位,所有可能性加在一起也就是 2^64 次方。所以 3DES 在 DES 的基础上进行了改进,把密钥的长度加长了,可以是 112 位或者 168 位,这样密钥的可能性就增加到了 2^112 或者 2^168,也就不可能再被破解了,但是这么做也是有缺点的,因为3DES 算法在增加密钥的同时也增加了迭代次数,这就会造成处理速度降低,加密效率比较低,这完全是牺牲时间和性能来提高安全性。
3DES 的加密模式和填充方式和 DES 算法中的一模一样,这里就不在多介绍。
3DES 的使用
其实 DES, 3DES , AES 这三种算法的使用都是基本相同的,都是先获取到密钥,然后利用 Cipher 类进行加密,解密过程和加密过程更是只有一词之差。下面来看看 3DES 的使用。
public class TripeDESUtil {
//初始化密钥
public static byte[] initKey() throws Exception{
KeyGenerator keyGen = KeyGenerator.getInstance("DESede");
keyGen.init(168);
SecretKey secretKey = keyGen.generateKey();
return secretKey.getEncoded();
}
//加密
public static byte[] encrypt