AES加密简单介绍

213 阅读2分钟

AES介绍

AES是对称加密,采用密钥加密,同样也是采用同一个密钥进行解密
AES 加密方式,密钥长度有128,192,256集中方式 加密模式\

ECB

电码本模式,根据密钥长度,对明文分段加密,然后把分段密文拼接
优点:并行加密,简单,速度块
缺点:明文一样,密文一样的问题

CBC:

密码分组链接模式,增加一个和密钥长度的初始化向量,在加密前,向量先和第一块明文异或运算,生成新的数据用密钥加密,加密第二块数据,拿取第一块密文数据与第二块明文进行异或运算后再进行加密
注意:向量和密钥长度一样
明文不需要补全,因为cbc采用的异或运算,会自动步0
优点:每次加密密钥不同,加强了安全性
缺点:不能并行运算,但解密可以并行,必须前一块加密完成后,才能加密后面数据

CFB

密码反馈模式,采用一个数据异或运算之后,在进行一次异或运算,值不变的原理,如果明文不足一个密钥字节,那么只做保存,待满足一个字节后再进行加密
优点:解密可同步,可以传入非16字节倍数的数据,适合流数据
缺点:加密不可并行,需要向量,解密可以并行解

OFB

输出反馈模式,将向量或者上一个向量加密后的数据加密,生成的key与明文做异或运算 优点:与CFB一样,方便传输流数据 缺点:由于依赖上一次的加密结果,所以并不能并行处理

CTR

计算器模式, OFB不能并行的原因就在于需要上一次的iv进行加密后的结果,因此在CTR中我们将(iv+key)+key替换成了(iv+1)+key,这样我们就不需要依赖上一次的加密结果了
优点:由于加解密可以并行,因此CTR模式的加解密速度也很快
缺点:iv+1的获取比较负责,需要获取瞬时iv

填充方式

NoPadding 不进行填充,要求明文必须是16个字节的整数倍,除了该填充模式,如果已经是16个字节的数据的话,会再填充一个16字节的数据 PKCS5Padding 不足16个字节的明文,填充和16相差的数据 ISO10126Padding 在明文末尾填充,最后一个字节填充和16字节相差的数据,其余填充随机数 密钥

向量 向量和密钥的长度一样,某些模式,需要向量iv

参考链接:www.cnblogs.com/better-fart…