AES加密JAVA实现
时间: 2023-10-19 07:07:56 浏览: 41
以下是Java实现AES加密的代码示例:
1. 导入相关包
```java
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
```
2. 定义加密方法
```java
public static String encrypt(String input, String key) throws Exception {
byte[] inputBytes = input.getBytes("UTF-8");
// 16字节密钥
byte[] keyBytes = key.getBytes("UTF-8");
SecretKeySpec keySpec = new SecretKeySpec(keyBytes, "AES");
// ECB模式
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, keySpec);
byte[] encrypted = cipher.doFinal(inputBytes);
// 转换为Base64编码
return Base64.getEncoder().encodeToString(encrypted);
}
```
3. 定义解密方法
```java
public static String decrypt(String encryptedInput, String key) throws Exception {
// 解码Base64
byte[] encryptedBytes = Base64.getDecoder().decode(encryptedInput);
// 16字节密钥
byte[] keyBytes = key.getBytes("UTF-8");
SecretKeySpec keySpec = new SecretKeySpec(keyBytes, "AES");
// ECB模式
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, keySpec);
byte[] decrypted = cipher.doFinal(encryptedBytes);
return new String(decrypted, "UTF-8");
}
```
4. 示例使用
```java
public static void main(String[] args) throws Exception {
String input = "Hello World";
String key = "0123456789abcdef";
// 加密
String encrypted = encrypt(input, key);
System.out.println("Encrypted: " + encrypted);
// 解密
String decrypted = decrypt(encrypted, key);
System.out.println("Decrypted: " + decrypted);
}
```