使用java代码实现aes加密算法
时间: 2023-09-02 22:12:23 浏览: 90
关于使用Java代码实现AES加密算法,我可以提供一段参考代码:
```java
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
public class AesEncryption {
public static byte[] encrypt(String key, String initVector, String value) {
try {
IvParameterSpec iv = new IvParameterSpec(initVector.getBytes("UTF-8"));
SecretKeySpec skeySpec = new SecretKeySpec(key.getBytes("UTF-8"), "AES");
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING");
cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);
byte[] encrypted = cipher.doFinal(value.getBytes());
return encrypted;
} catch (Exception ex) {
ex.printStackTrace();
}
return null;
}
public static void main(String[] args) {
String key = "0123456789abcdef"; // 16 bytes key for AES-128
String initVector = "0123456789abcdef"; // 16 bytes initialization vector
String value = "Hello World! This is a test message.";
byte[] encrypted = encrypt(key, initVector, value);
System.out.println("Encrypted message: " + Base64.encode(encrypted)); // using Base64 encoding for printing
}
}
```
该代码使用AES算法、CBC模式、PKCS5PADDING填充方式进行加密,输入为16字节的密钥和初始化向量(IV),输出为加密后的字节数组(使用Base64编码进行打印)。当然,对于实际使用场景,还需要进行解密操作,以及更严格的密钥管理和保护。
阅读全文