文件加密与解密

1.密钥文件

import java.io.*;
public class MyKey {
	public static void main(String[] args){
	  try{
	    File f=new File("C:/work/key.key");
	    FileOutputStream fos=new FileOutputStream(f);
	  for(int i=0;i<128;i++){
          fos.write((int)Math.random()*128);
	   }
		}catch(Exception e){}
	}
}

2.加密文件

import java.io.*;

public class MyEncryp {
   public static void main(String[] args){
	   try{
		   
		  //读密钥文件
		   int key[]=new int[128];
		   File keyFile=new File("C:/work/key.key");
		   
		   FileInputStream keyFis=new FileInputStream(keyFile);
		  
		   for(int i=0;i<128;i++){
		     key[i]=keyFis.read();
		   }
		   
		   
		   //加密
		   File inFile=new File("C:/work/test.txt");
		   File outFile=new File("C:/work/test1.txt");
		   FileInputStream fis=new FileInputStream(inFile);
		   FileOutputStream fos=new FileOutputStream(outFile);
		   
		   int length=fis.available();
		   
		   for(int i=0;i<length;i++){
		   fos.write(fis.read()+key[i%128]);
			  
		   }
	   
		   
	   }catch(Exception e){}
	   
	   
   }
}

3.解密文件

import java.io.*;
public class MyDecrypt {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		try{
			   
			int key[]=new int[128];
			   
//			   //加密文件
//			   File inFile=new File("C:/work/test1");
//			   File outFile=new File("C:/work/test2");
//			   FileInputStream fis3=new FileInputStream(inFile);
//			   FileOutputStream fos3=new FileOutputStream(outFile);
//			   for(int i=0;i<128;i++){
//			    fos.write(fis3.read()-key[i]);
//			   }
			
			//读密钥文件
			 File keyFile1=new File("C:/work/key.key");
			 FileInputStream keyFis=new FileInputStream(keyFile1);
			 for(int i=0;i<128;i++){
				key[i]=keyFis.read();
			 }
			 
			 //解密
			 File f=new File("C:/work/test1.txt");
			 FileInputStream fis=new FileInputStream(f);
			 
			 int length=fis.available();
			 
			 for(int i=0;i<length;i++){
			            System.out.print((char)fis.read()-key[i%128]);
				
			 }
//			   
			   
		   }catch(Exception e){}
		   
		   
	   }
	

}

猜你喜欢

转载自blog.csdn.net/u011159607/article/details/84820242