使用一种对称加密算法对一段文本进行加密解密 Java代码
时间: 2024-10-16 21:04:59 浏览: 11
在Java中,我们可以使用对称加密算法如AES(Advanced Encryption Standard)来进行文本加密和解密。这里是一个简单的例子,展示了如何使用`javax.crypto.Cipher`类以及`javax.crypto.spec.SecretKeySpec`:
```java
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import java.util.Base64;
public class SymmetricEncryptionExample {
private static final String ALGORITHM = "AES";
private static final String KEY = "your_secret_key"; // 替换为你实际的密钥
public static void main(String[] args) throws Exception {
// 生成密钥
KeyGenerator keyGen = KeyGenerator.getInstance(ALGORITHM);
keyGen.init(128); // AES默认128位,也可以根据需要调整
SecretKey secretKey = keyGen.generateKey();
// 将密钥转换为字节数组
byte[] keyBytes = secretKey.getEncoded();
// 加密部分
Cipher cipher = Cipher.getInstance(ALGORITHM);
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
byte[] encryptedText = cipher.doFinal("原始文本".getBytes()); // 待加密的文本
// 输出加密后的结果(Base64编码便于显示)
System.out.println("Encrypted Text (Base64): " + Base64.getEncoder().encodeToString(encryptedText));
// 解密部分
cipher.init(Cipher.DECRYPT_MODE, secretKey);
byte[] decryptedText = cipher.doFinal(encryptedText);
// 输出解密后的文本
System.out.println("Decrypted Text: " + new String(decryptedText));
}
}
```
在这个例子中,你需要替换`"your_secret_key"`为你的实际密钥。注意,对称加密的安全性依赖于密钥的保密性,所以通常会在安全环境中存储并传输密钥。
阅读全文