首先说一下,在AES加密与解密的过程中如果需要加密的数据不是16的倍数的时候,需要对原来的数据做padding操作。

padding分为以下几种,不同的padding对加密与解密有影响,所以要保证padding的方式是一致的。

1、ANSI X.923

在ANSI X.923的方式下,先是填充00,最后一个字节填充padded的字节个数。

例子: | DD DD DD DD DD DD DD DD | DD DD DD 00 00 00 00 05 |

2、ISO 10126

在ISO 10126的方式下,先是填充随机值,最后一个字节填充padded的字节个数。

例子: | DD DD DD DD DD DD DD DD | DD DD DD 95 81 28 A7 05 |

3、PKCS7

在PKCS7的方式下,如果一共需要padded多少个字节,所有填充的地方都填充这个值。

例子: | DD DD DD DD DD DD DD DD | DD DD DD 05 05 05 05 05 |

4、ISO/IEC 7816-4

在ISO/IEC 7816-4方式下,第一个填充的字节是80,后面的都填充00。

例子: | DD DD DD DD DD DD DD DD | DD DD DD 80 00 00 00 00 |

5、Zero padding

在Zero padding方式下,每一个需要填充的字节都填00。

例子: | DD DD DD DD DD DD DD DD | DD DD DD 00 00 00 00 00 |

Java使用Cipher.getInstance(“AES/ECB/PKCS5Padding“);加解密算法工具类实现
Java使用Cipher.getInstance(“AES/ECB/PKCS5Padding“);加解密算法工具类实现
加密标准中DES与AES到底是什么?两者有啥区别?
我们生活在一个信息爆炸的时代,各类隐私数据的保护成了现代信息技术中最为重要的技术之一。**加密**就是保护数据最直接也是应用最为广泛的方法。
小程序使用Base64加密key(秘钥)和iv(偏移量)在进行aes加密,AES加密技术简介与应用。
小程序使用Base64加密key(秘钥)和iv(偏移量)在进行aes加密,AES加密技术简介与应用。