aes算法java实现
时间: 2023-09-29 11:09:23 浏览: 105
AES算法的Java实现可以通过Java的加密库javax.crypto来实现。具体步骤如下:
1. 导入相应的包,引入javax.crypto.Cipher和javax.crypto.spec.SecretKeySpec类。
2. 创建一个Cipher对象,指定使用AES算法。
3. 创建一个SecretKeySpec对象,将密钥以字节数组的形式传递给它。
4. 使用Cipher对象的init()方法初始化加密/解密模式和密钥。
5. 调用Cipher对象的doFinal()方法,传入要加密/解密的数据。
6. 处理加密/解密后的数据。
以下是一个简单的AES加密和解密的示例代码:
```java
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
public class AESExample {
private static final String key = "0123456789abcdef"; // 密钥,必须为16字节长度的字符串
public static byte[] encrypt(byte[] data) throws Exception {
SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes(), "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);
return cipher.doFinal(data);
}
public static byte[] decrypt(byte[] encryptedData) throws Exception {
SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes(), "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);
return cipher.doFinal(encryptedData);
}
public static void main(String[] args) throws Exception {
String text = "搞事情";
byte[] encryptedData = encrypt(text.getBytes());
String base64EncryptedData = new String(java.util.Base64.getEncoder().encode(encryptedData));
System.out.println("AES加密后:" + base64EncryptedData);
byte[] decryptedData = decrypt(java.util.Base64.getDecoder().decode(base64EncryptedData));
String decryptedText = new String(decryptedData); System.out.println("AES解密后:" + decryptedText);
}
}
```
阅读全文