AES加密算法采用分组密码体制,每个分组数据的长度为128位16个字节,密钥长度可以是128位16个字节、192位或256位,一共有四种加密模式(ECB、CBC、CFB、OFB),我们通常采用需要初始向量IV的CBC模式,初始向量的长度规定是128位16个字节。
先说一下Padding的三种模式PKCS5、PKCS7和NOPADDING。 PKCS5是指分组数据缺少几个字节,就在数据的末尾填充几个字节的几,比如缺少5个字节,就在末尾填充5个字节的5。 PKCS7是指分组数据缺少几个字节,就在数据的末尾填充几个字节的0,比如缺少7个字节,就在末尾填充7个字节的0。 NoPadding是指不需要填充,也就是说数据的发送方肯定会保证最后一段数据也正好是16个字节。 而PKCS5如果正好是16个字节且最后是16的时候则会再填充16个16用来区分,PKC7则是为0时填充16个0。
作者:慕姐8265434
链接:http://www.imooc.com/article/262294?block_id=tuijian_wz
来源:慕课网
问题AES的ECB方式长度是多少?
AES 是块加密,块的长度是 16 个字节,如果原文不到 16 个字节,则需要填充至 16 个字节后再进行处理。
AES 密文长度 = (原文长度 / 16) * 16 + 16