以下是一个用Java实现对文本进行加密和解密的示例代码:
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
public class TextEncryptionDecryption {
private static final String SECRET_KEY = "mysecretkey";
public static void main(String[] args) {
String originalText = "Hello, World!";
// 加密文本
String encryptedText = encryptText(originalText);
System.out.println("加密后的文本:" + encryptedText);
// 解密文本
String decryptedText = decryptText(encryptedText);
System.out.println("解密后的文本:" + decryptedText);
}
public static String encryptText(String text) {
try {
DESKeySpec keySpec = new DESKeySpec(SECRET_KEY.getBytes(StandardCharsets.UTF_8));
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey secretKey = keyFactory.generateSecret(keySpec);
Cipher cipher = Cipher.getInstance("DES");
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
byte[] encryptedBytes = cipher.doFinal(text.getBytes(StandardCharsets.UTF_8));
return Base64.getEncoder().encodeToString(encryptedBytes);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static String decryptText(String encryptedText) {
try {
DESKeySpec keySpec = new DESKeySpec(SECRET_KEY.getBytes(StandardCharsets.UTF_8));
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey secretKey = keyFactory.generateSecret(keySpec);
Cipher cipher = Cipher.getInstance("DES");
cipher.init(Cipher.DECRYPT_MODE, secretKey);
byte[] encryptedBytes = Base64.getDecoder().decode(encryptedText);
byte[] decryptedBytes = cipher.doFinal(encryptedBytes);
return new String(decryptedBytes, StandardCharsets.UTF_8);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
上述代码使用DES算法对文本进行加密和解密。首先,通过指定一个密钥(SECRET_KEY)创建一个DESKeySpec对象。然后使用SecretKeyFactory生成SecretKey对象。接下来,创建一个Cipher对象,并使用SecretKey初始化它。对于加密操作,我们使用Cipher的doFinal方法对明文进行加密,并将结果以Base64编码的形式返回。对于解密操作,我们首先使用Base64解码密文,然后使用Cipher的doFinal方法对解码后的字节数组进行解密,并将结果以字符串形式返回。
请注意,这只是一个简单的示例,不是最安全的加密算法。在实际应用中,应考虑使用更强大和更安全的加密算法。