AES加密算怎么实现,用Java代码展现一下
时间: 2024-06-12 21:08:20 浏览: 49
AES加密算法(java)实现
5星 · 资源好评率100%
AES加密算法是一种对称加密算法,它可以对大量数据进行高效加密。下面是一个简单的Java代码示例,用于演示如何使用AES加密算法对字符串进行加密:
```java
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
public class AesEncryptionExample {
private static final String ALGORITHM = "AES";
private static final String MODE = "ECB";
private static final String PADDING = "PKCS5Padding";
public static void main(String[] args) {
String plaintext = "Hello, world!";
try {
String key = "0123456789abcdef";
String ciphertext = encrypt(plaintext, key);
System.out.println("Plaintext: " + plaintext);
System.out.println("Ciphertext: " + ciphertext);
} catch (Exception e) {
e.printStackTrace();
}
}
public static String encrypt(String plaintext, String key) throws Exception {
SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), ALGORITHM);
Cipher cipher = Cipher.getInstance(ALGORITHM + "/" + MODE + "/" + PADDING);
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
byte[] encryptedBytes = cipher.doFinal(plaintext.getBytes(StandardCharsets.UTF_8));
String encryptedString = Base64.getEncoder().encodeToString(encryptedBytes);
return encryptedString;
}
}
```
在上面的代码中,我们使用了Java标准库中的javax.crypto包,它提供了对加密和解密的支持。首先定义了一些常量,包括加密算法、加密模式和填充方式。然后,我们定义了一个encrypt方法,该方法接受一个明文和一个密钥,返回加密后的密文。在encrypt方法中,我们首先将密钥转换为SecretKeySpec对象,并通过Cipher.getInstance方法获取一个Cipher实例。然后,我们使用密钥初始化Cipher,并将明文转换为字节数组。最后,我们调用cipher.doFinal方法对明文进行加密,并使用Base64编码将加密后的字节数组转换为字符串。
在main方法中,我们演示了如何使用encrypt方法对一个字符串进行加密,并输出加密后的结果。需要注意的是,密钥应该是一个随机的、足够强度的字符串,最好使用SecureRandom类生成。
阅读全文