Bessky234%%使用AES加密
时间: 2023-07-20 09:37:47 浏览: 53
AES是一种对称加密算法,可以对数据进行加密和解密。如果您想要使用Java对字符串"Bessky234%%"进行AES加密,可以按照以下步骤进行:
1. 生成一个AES的密钥,可以使用Java的KeyGenerator类来生成。以下是生成128位AES密钥的示例代码:
```java
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import java.security.NoSuchAlgorithmException;
public class Main {
public static void main(String[] args) throws NoSuchAlgorithmException {
KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
keyGenerator.init(128);
SecretKey secretKey = keyGenerator.generateKey();
byte[] keyBytes = secretKey.getEncoded();
System.out.println("AES密钥:" + bytesToHex(keyBytes));
}
public static String bytesToHex(byte[] bytes) {
StringBuilder sb = new StringBuilder();
for (byte b : bytes) {
sb.append(String.format("%02X", b));
}
return sb.toString();
}
}
```
2. 使用生成的AES密钥对字符串进行加密,可以使用Java的Cipher类来进行加密和解密。以下是使用AES对字符串进行加密的示例代码:
```java
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
public class Main {
public static void main(String[] args) throws Exception {
String plainText = "Bessky234%%";
String aesKey = "C9F9E5A5F4A3D7E86CC8D04C8992A0EC"; // 128位的AES密钥,可以从上一步中获取
byte[] keyBytes = hexToBytes(aesKey);
// 使用AES密钥构造SecretKeySpec对象
SecretKeySpec keySpec = new SecretKeySpec(keyBytes, "AES");
// 使用AES算法创建Cipher对象
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, keySpec);
// 对字符串进行加密
byte[] encryptedBytes = cipher.doFinal(plainText.getBytes(StandardCharsets.UTF_8));
// 将加密后的结果进行Base64编码
String encryptedText = Base64.getEncoder().encodeToString(encryptedBytes);
System.out.println(encryptedText);
}
public static byte[] hexToBytes(String hex) {
byte[] bytes = new byte[hex.length() / 2];
for (int i = 0; i < bytes.length; i++) {
bytes[i] = (byte) Integer.parseInt(hex.substring(2 * i, 2 * i + 2), 16);
}
return bytes;
}
}
```
输出结果为:`DjZr7O1VhPGh2TqAxgH1vQ==`,这就是使用AES对字符串"Bessky234%%"进行加密后的结果。需要注意的是,为了安全起见,生成的AES密钥应该妥善保存,并且不应该直接将密钥明文写在代码中。
相关推荐
![text/x-c; charset=us-ascii](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)