java实现aes加密
时间: 2023-10-10 20:14:25 浏览: 98
Java实现AES加密算法
5星 · 资源好评率100%
Java中可以使用javax.crypto包下的类库来实现AES加密。下面是一个简单的示例代码:
```java
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;
public class AESUtil {
// 加密算法
private static final String AES_ALGORITHM = "AES";
/**
* 加密方法
*
* @param content 需要加密的内容
* @param key 加密密钥
* @return 加密后的字符串
*/
public static String encrypt(String content, String key) {
try {
byte[] byteContent = content.getBytes("utf-8");
// 创建AES密钥
SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(), AES_ALGORITHM);
// 创建AES加密器
Cipher cipher = Cipher.getInstance(AES_ALGORITHM);
cipher.init(Cipher.ENCRYPT_MODE, keySpec);
// 加密并返回结果
byte[] byteResult = cipher.doFinal(byteContent);
return Base64.getEncoder().encodeToString(byteResult);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 解密方法
*
* @param content 需要解密的内容
* @param key 解密密钥
* @return 解密后的字符串
*/
public static String decrypt(String content, String key) {
try {
// 将加密后的字符串转为byte数组
byte[] byteContent = Base64.getDecoder().decode(content);
// 创建AES密钥
SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(), AES_ALGORITHM);
// 创建AES解密器
Cipher cipher = Cipher.getInstance(AES_ALGORITHM);
cipher.init(Cipher.DECRYPT_MODE, keySpec);
// 解密并返回结果
byte[] byteResult = cipher.doFinal(byteContent);
return new String(byteResult, "utf-8");
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
```
在上面的代码中,我们使用了javax.crypto包下的Cipher类和SecretKeySpec类来实现AES加解密。其中,encrypt方法用于实现加密,decrypt方法用于实现解密。要注意的是,加密和解密使用的密钥必须相同,否则无法解密。
阅读全文