编写一个加密解密程序1、通过字节输入流读取原始文件中的每一个字节数据然后对其进行处理 2、通过字节输出流将处理以后的字节数据写入到另外一个文件中 3、对字节数据的处理方式可以使用异或运算符异或一个数 4、为了提高加解密的效率可以考虑使用高效的字节输入和输出流 用java实现
时间: 2024-02-01 16:12:58 浏览: 87
加密解密程序
以下是一个简单的加密解密程序的实现,使用了字节输入输出流和异或运算符:
```java
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class EncryptDecryptProgram {
// 加密解密使用的密钥
private static final byte KEY = 42;
public static void main(String[] args) {
encryptFile("plaintext.txt", "encrypted.txt");
decryptFile("encrypted.txt", "decrypted.txt");
}
/**
* 加密文件并写入到另一个文件中
* @param inputFile 原始文件名
* @param outputFile 加密后的文件名
*/
private static void encryptFile(String inputFile, String outputFile) {
try (FileInputStream inputStream = new FileInputStream(inputFile);
FileOutputStream outputStream = new FileOutputStream(outputFile)) {
int data;
while ((data = inputStream.read()) != -1) {
// 对每一个字节进行异或运算并写入输出流中
outputStream.write(data ^ KEY);
}
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 解密文件并写入到另一个文件中
* @param inputFile 加密文件名
* @param outputFile 解密后的文件名
*/
private static void decryptFile(String inputFile, String outputFile) {
try (FileInputStream inputStream = new FileInputStream(inputFile);
FileOutputStream outputStream = new FileOutputStream(outputFile)) {
int data;
while ((data = inputStream.read()) != -1) {
// 对每一个字节进行异或运算并写入输出流中
outputStream.write(data ^ KEY);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
这个程序使用了两个方法来分别实现加密和解密。在加密过程中,程序从一个文件中读取原始数据,对每一个字节进行异或运算,并将结果写入另一个文件中。在解密过程中,程序读取加密后的文件,对每一个字节进行相同的异或运算,以还原原始数据。
为了提高效率,本程序使用了Java标准库中的字节输入输出流,这些流提供了高效的读写能力。此外,程序还使用了try-with-resources语句来确保在执行完毕后自动关闭输入输出流,避免资源泄漏。
阅读全文