java.lang.Object
org.miaixz.bus.crypto.builtin.symmetric.Crypto
org.miaixz.bus.crypto.center.AES
- All Implemented Interfaces:
Serializable,Decryptor,Encryptor
AES加密算法实现 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法
对于Java中AES的默认模式是:AES/ECB/PKCS5Padding,如果使用CryptoJS,请调整为:padding: CryptoJS.pad.Pkcs7
相关概念说明:
mode: 加密算法模式,是用来描述加密算法(此处特指分组密码,不包括流密码,)在加密时对明文分组的模式,它代表了不同的分组方式
padding: 补码方式是在分组密码中,当明文长度不是分组长度的整数倍时,需要在最后一个分组中填充一些数据使其凑满一个分组的长度。
iv: 在对明文分组加密时,会将明文分组与前一个密文分组进行XOR运算(即异或运算),但是加密第一个明文分组时不存在“前一个密文分组”,
因此需要事先准备一个与分组长度相等的比特序列来代替,这个比特序列就是偏移量。
相关概念见:https://blog.csdn.net/OrangeJack/article/details/82913804
- Since:
- Java 17+
- Author:
- Kimi Liu
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionAES()构造,默认AES/ECB/PKCS5Padding,使用随机密钥AES(byte[] key) 构造,使用默认的AES/ECB/PKCS5Padding构造构造构造构造AES(String mode, String padding, SecretKey key, AlgorithmParameterSpec paramsSpec) 构造构造,使用默认的AES/ECB/PKCS5Padding构造,使用随机密钥构造构造构造构造AES(org.miaixz.bus.core.lang.Algorithm.Mode mode, Padding padding, SecretKey key, AlgorithmParameterSpec paramsSpec) 构造 -
Method Summary
Methods inherited from class org.miaixz.bus.crypto.builtin.symmetric.Crypto
decrypt, decrypt, doFinal, doFinalHex, encrypt, encrypt, encrypt, getCipher, getSecretKey, init, setAlgorithmParameterSpec, setIv, setIv, setMode, setMode, setRandom, update, updateHexMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.miaixz.bus.crypto.builtin.symmetric.Decryptor
decrypt, decrypt, decryptString, decryptString, decryptString, decryptString, decryptString, decryptStringMethods inherited from interface org.miaixz.bus.crypto.builtin.symmetric.Encryptor
encrypt, encrypt, encrypt, encryptBase64, encryptBase64, encryptBase64, encryptBase64, encryptHex, encryptHex, encryptHex, encryptHex
-
Constructor Details
-
AES
public AES()构造,默认AES/ECB/PKCS5Padding,使用随机密钥 -
AES
public AES(byte[] key) 构造,使用默认的AES/ECB/PKCS5Padding- Parameters:
key- 密钥
-
AES
构造,使用默认的AES/ECB/PKCS5Padding- Parameters:
key- 密钥
-
AES
构造,使用随机密钥- Parameters:
mode- 模式Algorithm.Modepadding-Padding补码方式
-
AES
构造- Parameters:
mode- 模式Algorithm.Modepadding-Padding补码方式key- 密钥,支持三种密钥长度:128、192、256位
-
AES
构造- Parameters:
mode- 模式Algorithm.Modepadding-Padding补码方式key- 密钥,支持三种密钥长度:128、192、256位iv- 偏移向量,加盐
-
AES
构造- Parameters:
mode- 模式Algorithm.Modepadding-Padding补码方式key- 密钥,支持三种密钥长度:128、192、256位
-
AES
构造- Parameters:
mode- 模式Algorithm.Modepadding-Padding补码方式key- 密钥,支持三种密钥长度:128、192、256位iv- 偏移向量,加盐
-
AES
public AES(org.miaixz.bus.core.lang.Algorithm.Mode mode, Padding padding, SecretKey key, AlgorithmParameterSpec paramsSpec) 构造- Parameters:
mode- 模式Algorithm.Modepadding-Padding补码方式key- 密钥,支持三种密钥长度:128、192、256位paramsSpec- 算法参数,例如加盐等
-
AES
构造- Parameters:
mode- 模式padding- 补码方式
-
AES
构造- Parameters:
mode- 模式padding- 补码方式key- 密钥,支持三种密钥长度:128、192、256位
-
AES
构造- Parameters:
mode- 模式padding- 补码方式key- 密钥,支持三种密钥长度:128、192、256位iv- 加盐
-
AES
构造- Parameters:
mode- 模式padding- 补码方式key- 密钥,支持三种密钥长度:128、192、256位
-
AES
构造- Parameters:
mode- 模式padding- 补码方式key- 密钥,支持三种密钥长度:128、192、256位paramsSpec- 算法参数,例如加盐等
-