使用java语言,利用凯撒密码对文本文件进行加密和解密。 ①编写程序,提示用户输入一个输入文件名和一个输出文件名,然后将输入文件的加密版本存为输出文件; ②编写程序解密这个加密文件,程序应该提示用户输入一个输入文件名和一个输出文件名,然后将输入文件的解密版本存为输出文件; ③编写程序把解密后的文件内容显示出来。
时间: 2023-06-04 16:05:43 浏览: 153
Java 实现凯撒加密解密
5星 · 资源好评率100%
好的,我了解了您的要求。关于您的第一个问题,我可以回答:
以下是java语言的凯撒密码加密和解密程序的示例代码:
import java.io.*;
public class CaesarCipher {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//获取用户输入的输入文件名和输出文件名
System.out.println("请输入输入文件名:");
String infile = br.readLine();
System.out.println("请输入输出文件名:");
String outfile = br.readLine();
//加密文件
File inputFile = new File(infile);
File outputFile = new File(outfile);
FileReader fr = new FileReader(inputFile);
FileWriter fw = new FileWriter(outputFile);
int c = fr.read();
while (c != -1) {
//对每个字符进行加密处理
int e = (c + 5) % 256;
fw.write(e);
c = fr.read();
}
fr.close();
fw.close();
System.out.println("文件已加密成功!");
//解密文件
System.out.println("请输入要解密的文件名:");
String infileName = br.readLine();
System.out.println("请输入解密后输出的文件名:");
String outfileName = br.readLine();
File fin = new File(infileName);
File fout = new File(outfileName);
FileInputStream fis = new FileInputStream(fin);
FileOutputStream fos = new FileOutputStream(fout);
int d;
while ((d = fis.read()) != -1) {
//对每个字符进行解密
int dec = (d - 5) % 256;
fos.write(dec);
}
fis.close();
fos.close();
System.out.println("文件已解密成功!");
//显示解密后的文件内容
System.out.println("解密后的文件内容是:");
FileInputStream fis2 = new FileInputStream(fout);
int i;
while ((i = fis2.read()) != -1) {
System.out.print((char) i);
}
fis2.close();
}
}
需要注意的是,凯撒密码是一种非常简单的加密方式,很容易被破解。如果您需要更加安全的加密方式,可以考虑使用其他的加密算法,比如DES、AES等。
阅读全文