3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称。它相当于是对每个数据块应用三次DES加密算法。
3DES算法是指使用双长度(16字节)密钥K=(KL||KR)将8字节明文数据块进行3次DES加密/解密。
3DES的密钥是8个字节,但实际上只有7个用上,也就是56位。
3DES是用3个或2个des密钥加密一串明文,最少112位最多168位。也就是14~21个字母或数字符号。
设Ek()和Dk()分别代表DES算法的加密和解密过程,k代表DES算法使用的密钥,M代表明文,C代表密文,则3DES算法的过程可表示为:
加密:C = Ek3(Dk2(Ek1(M))) 即对明文数据进行,加密 --> 解密 --> 加密的过程,最后得到密文数据
解密:M = Dk1(Ek2(Dk3(C))) 即对密文数据进行,解密 --> 加密 --> 解密的过程,最后得到明文数据
这里可以K1=K3,但不能K1=K2=K3(如果相等的话就成了DES算法了)
由于DES加解密算法是每8个字节作为一个加解密数据块,因此在实现该算法时,需要对数据进行分块和补位(即最后不足8字节时,要补足8字节)
学习使用代码
运行结果
参考文章:
http://blog.csdn.net/qq_21794823/article/details/53068396?locationNum=2&fps=1
http://zhangzhaoaaa.iteye.com/blog/2145750