Class AES

java.lang.Object
org.aoju.bus.crypto.symmetric.Crypto
org.aoju.bus.crypto.symmetric.AES
All Implemented Interfaces:
Serializable, Decryptor, Encryptor

public class AES extends Crypto
AES加密算法实现 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法 对于Java中AES的默认模式是:AES/ECB/PKCS5Padding,如果使用CryptoJS,请调整为:padding: CryptoJS.pad.Pkcs7 相关概念说明:
 mode:    加密算法模式,是用来描述加密算法(此处特指分组密码,不包括流密码,)在加密时对明文分组的模式,它代表了不同的分组方式
 padding: 补码方式是在分组密码中,当明文长度不是分组长度的整数倍时,需要在最后一个分组中填充一些数据使其凑满一个分组的长度。
 iv:      在对明文分组加密时,会将明文分组与前一个密文分组进行XOR运算(即异或运算),但是加密第一个明文分组时不存在“前一个密文分组”,
          因此需要事先准备一个与分组长度相等的比特序列来代替,这个比特序列就是偏移量。
 
Since:
Java 17+
Author:
Kimi Liu
See Also:
  • Constructor Details

    • AES

      public AES()
      构造,默认AES/ECB/PKCS5Padding,使用随机密钥
    • AES

      public AES(byte[] key)
      构造,使用默认的AES/ECB/PKCS5Padding
      Parameters:
      key - 密钥
    • AES

      public AES(SecretKey key)
      构造,使用默认的AES/ECB/PKCS5Padding
      Parameters:
      key - 密钥
    • AES

      public AES(Mode mode, Padding padding)
      构造,使用随机密钥
      Parameters:
      mode - 模式Mode
      padding - Padding补码方式
    • AES

      public AES(Mode mode, Padding padding, byte[] key)
      构造
      Parameters:
      mode - 模式Mode
      padding - Padding补码方式
      key - 密钥,支持三种密钥长度:128、192、256位
    • AES

      public AES(Mode mode, Padding padding, byte[] key, byte[] iv)
      构造
      Parameters:
      mode - 模式Mode
      padding - Padding补码方式
      key - 密钥,支持三种密钥长度:128、192、256位
      iv - 偏移向量,加盐
    • AES

      public AES(Mode mode, Padding padding, SecretKey key)
      构造
      Parameters:
      mode - 模式Mode
      padding - Padding补码方式
      key - 密钥,支持三种密钥长度:128、192、256位
    • AES

      public AES(Mode mode, Padding padding, SecretKey key, byte[] iv)
      构造
      Parameters:
      mode - 模式Mode
      padding - Padding补码方式
      key - 密钥,支持三种密钥长度:128、192、256位
      iv - 偏移向量,加盐
    • AES

      public AES(Mode mode, Padding padding, SecretKey key, AlgorithmParameterSpec paramsSpec)
      构造
      Parameters:
      mode - 模式Mode
      padding - Padding补码方式
      key - 密钥,支持三种密钥长度:128、192、256位
      paramsSpec - 算法参数,例如加盐等
    • AES

      public AES(String mode, String padding)
      构造
      Parameters:
      mode - 模式
      padding - 补码方式
    • AES

      public AES(String mode, String padding, byte[] key)
      构造
      Parameters:
      mode - 模式
      padding - 补码方式
      key - 密钥,支持三种密钥长度:128、192、256位
    • AES

      public AES(String mode, String padding, byte[] key, byte[] iv)
      构造
      Parameters:
      mode - 模式
      padding - 补码方式
      key - 密钥,支持三种密钥长度:128、192、256位
      iv - 加盐
    • AES

      public AES(String mode, String padding, SecretKey key)
      构造
      Parameters:
      mode - 模式
      padding - 补码方式
      key - 密钥,支持三种密钥长度:128、192、256位
    • AES

      public AES(String mode, String padding, SecretKey key, AlgorithmParameterSpec paramsSpec)
      构造
      Parameters:
      mode - 模式
      padding - 补码方式
      key - 密钥,支持三种密钥长度:128、192、256位
      paramsSpec - 算法参数,例如加盐等