DES算法是一种用56位密钥来加密分组长度为64位数据的对称密钥算法(实际上函数要求一个64位的密钥作为输入,但是第8、16、24、32、40、48、56、64 等8位是校验位, 使得每个密钥都有奇数个 1,所以参与加密过程的只有56位)。
AES是一个迭代分组密码,分组密码也就是把明文分成一组一组的,每组长度相等,每次加密一组数据,直到加密完整个明文,其分组长度和密钥长度都是可变的,只是为了满足AES的要求才限定处理的分组大小为128位,而密钥长度为128位、192位或256位,相应的迭代轮数N,为10轮、12轮、14轮。AES汇聚了安全性能、效率、可实现性、灵活性等优点。最大的优点是可以给出算法的最佳查分特征的概率,并分析算法抵抗查分密码分析及线性密码分析的能力。
ZeroPadding,数据长度不对齐时使用0填充,否则不填充。
PKCS7Padding,假设数据长度需要填充n(n>0)个字节才对齐,那么填充n个字节,每个字节都是n;如果数据本身就已经对齐了,则填充一块长度为块大小的数据,每个字节都是块大小。
PKCS5Padding,PKCS7Padding的子集,块大小固定为8字节。
接下来附上Qt版的几种填充方式代码
![1065327a8586f2e4d0f26f8420138183.png](https://i-blog.csdnimg.cn/blog_migrate/7bc70396dd4814440e4e07138846188e.jpeg)
Padding
AES-ECB-128-PKCS5 加密解密效果图
![3ae03aac3e8bb8e54c12bf33605c313e.png](https://i-blog.csdnimg.cn/blog_migrate/0d474956f2064ad3a9b342e4675eb81c.jpeg)
AES-ECB-128-PKCS5
DES-ECB-PKCS5 加密解密效果图
![ef9aa118034b7918c7e74a7e7883612d.png](https://i-blog.csdnimg.cn/blog_migrate/15a253645013c3d6d0ff2e1ac710b491.jpeg)
DES-ECB-PKCS5