当前位置: 代码迷 >> 综合 >> java 文件加密
  详细解决方案

java 文件加密

热度:87   发布时间:2023-10-17 19:43:51.0
import java.io.File;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class FileEncAndDecUtil {private static final int numOfEncAndDec = 0x99; //加密解密秘钥 2进制  99private static int dataOfFile = 0; //文件字节内容public static void main(String[] args) {//        String srcFilePath = "C:\\Users\\Administrator\\Desktop\\enc\\1.txt";  //初始文件路径
//        String encFilePath = "C:\\Users\\Administrator\\Desktop\\enc\\22.txt"; //加密文件路径
//        String decFilePath = "C:\\Users\\Administrator\\Desktop\\enc\\33.txt"; //解密文件路径String srcFilePath = "C:/Users/Administrator/Desktop/enc/1.txt";  //初始文件路径String encFilePath = "C:/Users/Administrator/Desktop/enc/22.txt"; //加密文件路径String decFilePath = "C:/Users/Administrator/Desktop/enc/33.txt"; //解密文件路径try {EncFile(srcFilePath, encFilePath); //加密操作DecFile(encFilePath, decFilePath); //加密操作} catch (Exception e) {e.printStackTrace();}  }/*** 文件加密* @param srcFilePath 初始文件路径* @param encFilePath 加密文件路径* @throws Exception*/
public static void EncFile(File srcFile, File encFile) throws IOException {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);try {byte[] buf = new byte[1024*64];while (true){int readBytes = fis.read(buf);if(readBytes == -1)break;fos.write(buf, 0, readBytes);}} finally {fis.close();fos.flush();fos.close();}
}
    /*** 解密文件* @param encFilePath 加密文件路径* @param decFilePath 解密文件路径* @throws Exception*/private static void DecFile(String encFilePath, String decFilePath) throws Exception {File encFile = new File(encFilePath);File decFile = new File(decFilePath);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();}}