java复制文件用异或运算加密小数组
时间: 2024-05-05 18:19:08 浏览: 6
对于这个问题,我可以提供以下的 Java 代码示例供您参考:
```java
import java.io.*;
import java.util.*;
public class FileEncryptor {
private static final byte[] KEY = {0x1F, 0x2E, 0x3D, 0x4C, 0x5B, 0x6A, 0x79, 0x88};
public static void encrypt(File inputFile, File outputFile) throws IOException {
FileInputStream in = new FileInputStream(inputFile);
FileOutputStream out = new FileOutputStream(outputFile);
int b;
int i = 0;
while ((b = in.read()) != -1) {
int keyByte = KEY[i++ % KEY.length];
out.write(b ^ keyByte);
}
in.close();
out.close();
}
public static void decrypt(File inputFile, File outputFile) throws IOException {
encrypt(inputFile, outputFile);
}
public static void main(String[] args) {
try {
File inputFile = new File("input.txt");
File encryptedFile = new File("encrypted.txt");
File decryptedFile = new File("decrypted.txt");
encrypt(inputFile, encryptedFile);
decrypt(encryptedFile, decryptedFile);
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
以上代码中的 `KEY` 数组是加密用的密钥,本例用异或运算把输入文件的每一个字节与密钥进行异或运算后写入输出文件。解密其实就是再用同样的方法对加密后的文件进行处理。注意:此加密方式不够安全,仅适用于简单加密需求。如需更高安全要求的加密,请使用更加安全的加密算法。