这里使用的是文件读写流的时候进行异位算法,方法也比较简单。
详细见代码,可以是任何文件,图片,pdf等;
package inno320; import java.io.File; import java.io.InputStream; import java.io.OutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; public class FileEncAndDec { private static final int numOfEncAndDec = 0x99; // 加密解密秘钥 private static int dataOfFile = 0; // 文件字节内容 public static void main(String[] args) { File srcFile = new File("g:\\zanshan.jpg"); // 初始文件 File encFile = new File("f:\\encFile.jpg"); // 加密文件 File decFile = new File("f:\\decFile.jpg"); // 解密文件 try { encFile(srcFile, encFile); // 加密操作 decFile(encFile,decFile); } catch (Exception e) { e.printStackTrace(); } } 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(); } 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(); } }
中间为加密后的文件,无法在正常打开,右边为解密 的文件,这里的密钥可以自己定义