java 加密解密函数具体代码
时间: 2024-09-04 11:00:52 浏览: 54
Java提供了丰富的加密解密库,可以执行各种加密操作。以下是一个使用Java进行加密解密的简单示例代码:
首先,你需要导入Java加密库中相关的类:
```java
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;
```
然后,创建一个生成密钥和执行加密解密的类:
```java
public class CryptoExample {
// 生成AES密钥
public static SecretKey generateAESKey() throws Exception {
KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
keyGenerator.init(128); // AES密钥长度可以是128、192或256位
return keyGenerator.generateKey();
}
// AES加密
public static String encrypt(String data, SecretKey secretKey) throws Exception {
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
byte[] encryptedBytes = cipher.doFinal(data.getBytes());
return Base64.getEncoder().encodeToString(encryptedBytes);
}
// AES解密
public static String decrypt(String encryptedData, SecretKey secretKey) throws Exception {
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, secretKey);
byte[] decodedBytes = Base64.getDecoder().decode(encryptedData);
byte[] decryptedBytes = cipher.doFinal(decodedBytes);
return new String(decryptedBytes);
}
public static void main(String[] args) {
try {
SecretKey secretKey = generateAESKey();
String originalString = "这是一个要加密的字符串";
String encryptedString = encrypt(originalString, secretKey);
String decryptedString = decrypt(encryptedString, secretKey);
System.out.println("原始字符串: " + originalString);
System.out.println("加密后字符串: " + encryptedString);
System.out.println("解密后字符串: " + decryptedString);
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
这段代码展示了如何生成AES密钥、使用该密钥进行加密和解密操作。加密后的数据是Base64编码的字符串,解码后可以还原为原始数据。
阅读全文