密钥类型
- AES-128:128位比特(16字节)
- AES-192:192位比特(24字节)
- AES-256:256位比特(32字节)
一般简短数据采用AES-128,也就是16字节,少部分采用AES-256。
填充方式
- NoPadding:不填充,只能加密长度为16倍数的数据,一般不适用;
- Zeros:补0,如果原数据长度恰好是16的倍数,也要补16个0;
- ISO10126:最后一个字节是填充的字节数(包括最后一字节),其他全部填随机数
1 2 3 4 5 6 7 8 9 10 – x x x x x 6
填充6个字节
- PKCS5(PKCS7):应用比较多,最后一组缺几个字节就填充几
1 2 3 4 5 6 7 8 9 10 – 6 6 6 6 6 6
前面10个字节,缺6字节才能为一组,填充6个6;如果恰好是16个字节,则填充16个16.
加密方式
- 电码本模式(Electronic Codebook Book,简称ECB):将明文按16字节分组,每组分别加密后拼接;
![efb1e9f0e78b15f883e39c4dbe8473f1.png](https://img-blog.csdnimg.cn/img_convert/efb1e9f0e78b15f883e39c4dbe8473f1.png)
- 密码分组链接模式(Cipher Block Chaining,简称CBC):ECB缺点是明文内相同的明文块,最终的密文也是相同的,为了更好的隐藏明文信息,针对这个问题就有了CBC模式,每一小段明文先与初始块向量或者上一段的密文段进行异或运算后,再与密钥进行加密。
- 计算器模式(Counter,简称CTR)
- 密码反馈模式(Cipher FeedBack,简称CFB)
- 输出反馈模式(Output FeedBack,简称OFB)
实际应用较多的加密方式:ECB和CBC两种
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)