对称加密算法:
加密和解密使用的是同一个密钥。密钥长度有128,192,256
加密流程:
1,将明文才分为128位的明文块。
2,如果最后一块不足128位将其填满位128。
3,将明文块,通过AES加密器,与密钥,加密位密文块。
4,再将加密后的密文块拼接成密文。
补充:
(1)步骤一的填充模式有需要的,我们介绍几个常用的
NoPadding:不做任何填充,但要求文明长度能整除128(bit)。
PKCS5Padding(默认):在文件末尾补上响应数量的字符,且每个字节的值等于缺少的字符数。
(2)模式:
AES的工作模式体现在,把明文块转为密文块的处理流程不同。
AES的工作模式有五种:ECB、CBC、CTE 、CFB、OFB。
介绍两常见的模式:
ECB:
ECB最简单的工作模式:就是每一个明文块单独处理,互不影响,优点:实现简单,效率高有利于并行处理。缺点相同的明文块,处理之后的密文块也是相同的
CBC:
第一个明文块与IV(相当于MD5的盐)异或之后再进行加密处理,其他的明文块都需要和,前一个明文块加密之后的结果进行异或之后,再进行AES加密器处理。其主要的目的,就是为了防止相同的明文块,加密之后是相同的密文。因为处理块的时候需要前一个明文块,所以不能并行执行。
优点:安全性高。
缺点:因为处理块的时候需要前一个明文块,所以不能并行执行。
(3)AES加密器加密的具体流程:
会对明文块做N+2轮处理。具体如下:
初始轮:加轮密钥。
N次普通轮:字节替代,行位移,列混淆,加轮密钥。
最终轮:字节替代,行位移,加轮密钥。