java aes iv 24位_Java中的AES加解密
时间: 2024-03-10 19:44:42 浏览: 67
Delphi.rar_AES_AES加密_delphi AES加密_delphi 加解密_java delphi aes
5星 · 资源好评率100%
在Java中使用AES加解密需要进行以下步骤:
1. 生成AES密钥
可以使用Java的KeyGenerator类来生成AES密钥,如下所示:
```java
KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
keyGenerator.init(128); // 密钥长度为128位
SecretKey secretKey = keyGenerator.generateKey();
byte[] keyBytes = secretKey.getEncoded();
```
2. 对明文进行加密
可以使用Java的Cipher类来进行加密操作,如下所示:
```java
String plainText = "Hello, world!";
byte[] plainBytes = plainText.getBytes("UTF-8");
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
byte[] ivBytes = new byte[16]; // 初始化向量长度为16字节
new SecureRandom().nextBytes(ivBytes); // 随机生成初始化向量
IvParameterSpec iv = new IvParameterSpec(ivBytes);
cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(keyBytes, "AES"), iv);
byte[] encryptedBytes = cipher.doFinal(plainBytes);
```
3. 对密文进行解密
可以使用Java的Cipher类来进行解密操作,如下所示:
```java
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
IvParameterSpec iv = new IvParameterSpec(ivBytes);
cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(keyBytes, "AES"), iv);
byte[] decryptedBytes = cipher.doFinal(encryptedBytes);
String decryptedText = new String(decryptedBytes, "UTF-8");
```
需要注意的是,加密和解密的初始化向量(IV)必须相同,否则解密会失败。在实际应用中,可以将初始化向量和加密后的密文一起存储或传输,以便解密时使用。
阅读全文