用Java将文件f1.txt的内容加密(加密算法自己设计)后存放到f2.txt中。读出f2.txt文件的内容,并显示解密后的内容
时间: 2024-12-27 16:31:42 浏览: 4
在Java中,你可以使用自定义的加密算法(这里假设我们使用简单的位移加密作为示例,实际生产环境中应使用更安全的加密技术,如AES、RSA等)来实现这个功能。首先,你需要创建一个简单的加密和解密函数。下面是一个简化的例子:
```java
public class EncryptionExample {
private static final int KEY = 5; // 自定义的位移量
// 加密函数
public static String encrypt(String input) {
char[] encryptedChars = input.toCharArray();
for (int i = 0; i < encryptedChars.length; i++) {
encryptedChars[i] = (char) (encryptedChars[i] + KEY);
}
return new String(encryptedChars);
}
// 解密函数
public static String decrypt(String encryptedInput) {
return encrypt(encryptedInput); // 这里只是一个简化示例,实际解密应该反向操作
}
public static void main(String[] args) {
try {
// 读取原始文件内容
String originalContent = readFile("f1.txt");
// 加密并保存到新文件
String encryptedContent = encrypt(originalContent);
writeFile("f2.txt", encryptedContent);
// 从加密后的文件读取并解密内容
String decryptedContent = readFile("f2.txt");
decryptedContent = decrypt(decryptedContent);
// 输出解密后的内容
System.out.println("解密后的内容:" + decryptedContent);
} catch (IOException e) {
e.printStackTrace();
}
}
// 读取文件内容的辅助方法
private static String readFile(String fileName) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(fileName));
StringBuilder contentBuilder = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
contentBuilder.append(line).append('\n');
}
reader.close();
return contentBuilder.toString();
}
// 写入文件内容的辅助方法
private static void writeFile(String fileName, String content) throws IOException {
BufferedWriter writer = new BufferedWriter(new FileWriter(fileName));
writer.write(content);
writer.close();
}
}
```
注意:上述代码仅用于教学目的,对于生产环境,请使用成熟的加密库,例如`javax.crypto`包提供的API。
阅读全文