aes加密算法java实现
时间: 2023-08-18 07:07:47 浏览: 115
AES(Advanced Encryption Standard)是一种对称加密算法,可以用于加密和解密数据。在Java中,可以使用javax.crypto包中的类来实现AES加密算法。
下面是一个简单的示例代码,演示如何使用AES加密算法进行加密和解密:
```java
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;
public class AESExample {
private static final String ALGORITHM = "AES";
private static final String KEY = "0123456789abcdef"; // 密钥,长度必须为16字节
public static String encrypt(String data) throws Exception {
SecretKeySpec keySpec = new SecretKeySpec(KEY.getBytes(), ALGORITHM);
Cipher cipher = Cipher.getInstance(ALGORITHM);
cipher.init(Cipher.ENCRYPT_MODE, keySpec);
byte[] encryptedBytes = cipher.doFinal(data.getBytes());
return Base64.getEncoder().encodeToString(encryptedBytes);
}
public static String decrypt(String encryptedData) throws Exception {
SecretKeySpec keySpec = new SecretKeySpec(KEY.getBytes(), ALGORITHM);
Cipher cipher = Cipher.getInstance(ALGORITHM);
cipher.init(Cipher.DECRYPT_MODE, keySpec);
byte[] decryptedBytes = cipher.doFinal(Base64.getDecoder().decode(encryptedData));
return new String(decryptedBytes);
}
public static void main(String[] args) {
try {
String originalData = "Hello, AES!";
System.out.println("原始数据: " + originalData);
String encryptedData = encrypt(originalData);
System.out.println("加密后的数据: " + encryptedData);
String decryptedData = decrypt(encryptedData);
System.out.println("解密后的数据: " + decryptedData);
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
在上面的示例代码中,我们使用AES算法加密和解密数据。密钥长度必须为16字节(128位),可以根据需要修改。`encrypt`方法用于加密数据,`decrypt`方法用于解密数据。
请注意,这只是一个简单的示例,实际应用中需要注意密钥的安全性和其他加密参数的设置。
阅读全文