package fileEncDec;
import java.io.File;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
public class FileEncAndDec {
private static final int numOfEncAndDec = 0x99; //加密解密秘钥
private static int dataOfFile = 0; //文件字节内容
private static void EncFile(File srcFile, File encFile) throws Exception {
if(!srcFile.exists()){
System.out.println("source file not exixt");
return;
}
if(!encFile.exists()){
System.out.println("encrypt file created");
encFile.createNewFile();
}
InputStream fis = new FileInputStream(srcFile);
OutputStream fos = new FileOutputStream(encFile);
while ((dataOfFile = fis.read()) > -1) {
fos.write(dataOfFile^numOfEncAndDec);
}
fis.close();
fos.flush();
fos.close();
srcFile.delete();
}
private static void DecFile(File encFile, File decFile) throws Exception {
if(!encFile.exists()){
System.out.println("encrypt file not exixt");
return;
}
if(!decFile.exists()){
System.out.println("decrypt file created");
decFile.createNewFile();
}
InputStream fis = new FileInputStream(encFile);
OutputStream fos = new FileOutputStream(decFile);
while ((dataOfFile = fis.read()) > -1) {
fos.write(dataOfFile^numOfEncAndDec);
}
fis.close();
fos.flush();
fos.close();
encFile.delete();
}
public static void main(String[] args) throws Exception {
//加密
File file = new File("D:\\workspace\\akpay_site.exl");
converseFile(file);
//解密
// File file = new File(“D:\workspace\akpay_site.exl”);
// converseFileBack(file);
}
private static void converseFile(File file) throws Exception {
if(file.isDirectory()) {
File[] fileList = file.listFiles();
for(File f : fileList) {
converseFile(f);
}
}else {
if(file.getName().contains(".java")) {
String newName = file.getPath().replace(".java", ".class");
EncFile(file,new File(newName));
}
System.out.println(file.getName());
}
}
private static void converseFileBack(File file) throws Exception {
if(file.isDirectory()) {
File[] fileList = file.listFiles();
for(File f : fileList) {
converseFileBack(f);
}
}else {
if(file.getName().contains(".class")) {
String newName = file.getPath().replace(".class", ".java");
DecFile(file,new File(newName));
}
System.out.println(file.getName());
}
}
}