介绍
密码学中,三重数据加密算法(英语:Triple Data Encryption Algorithm,缩写为TDEA,Triple DEA),或称3DES(Triple DES),是一种对称密钥加密块密码,相当于是对每个数据块应用三次数据加密标准(DES)算法。由于计算机运算能力的增强,原版DES密码的密钥长度变得容易被暴力破解;3DES即是设计用来提供一种相对简单的方法,即通过增加DES的密钥长度来避免类似的攻击,而不是设计一种全新的块密码算法。
要求
q字符串__o_s=ec4867af19b00ba67f3b2c83058cc41a%23LATEST&__o_v=0.1.0&arg1=4&arg2=123456789&__o_r=1453355520149.751
对字符串进行加密
- 首先对原始密钥(上文准备参数中的key)做MD5算hash值得到16位字节数组,再用前8位数据对应补全后8位 ,计算出24位长的密码byte值。
- 使用上一步24位字节数组,构造一个算法为DESede的密钥。
- 获取模式为“DESede/CBC/PKCS5Padding”的Cipher 对象
- 以加密模式,上面生成的密钥,初始向量IV( 8字节空数组)作为算法参数,初始化Cipher 对象
- q的字节数组作为缓存区, Cipher 按单部分操作进行加密(doFinal)
- 对加密后的byte[]数组转换为0-9a-f 16进制ASCII字符q
加密与解密
1 | public class TripleDESUtil { |