使用异或对文件进行加密

2016.11.03

前面找工作的原因,发现自己对很多知识和概念都理解不深,现在自己在看传智播客的视频,感觉讲的超级棒。今天看了使用异或对文件进行加密,甚是感兴趣,下面我们来看看是如何实现的。

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class IamageTest {

	public static void main(String[] args) throws Exception{
		//找到图片文件
		File inFile = new File("C:\\Users\\tuocheng\\Desktop\\tuocheng.jpg");
		File outFile = new File("e:\\加密的图片.jpg");
		
		//建立数据通道。让图片的二进制数据流入
		FileInputStream input = new FileInputStream(inFile);
		FileOutputStream output = new FileOutputStream(outFile);
		//边读,把读到的数据异或一个数据,把数据写出
		
		int content = 0;//该变量用于存储读到的数据
		while((content = input.read())!=-1){//如果没有读到文件的末尾,那么继续读取数据已经存储到content变量中了
			output.write(content^12);
		}
		//关闭资源
		output.close();
		input.close();
		
	}
}

    这样,我们在e盘下去找我们的图片,打开后就是

   

    如果我们要对文件进行解密,要异或12回来就可以了,即

    

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class IamageTest {

	public static void main(String[] args) throws Exception{
		//找到图片文件
		File inFile = new File("e:\\加密的图片.jpg");
		File outFile = new File("e:\\解密的图片.jpg");
		
		//建立数据通道。让图片的二进制数据流入
		FileInputStream input = new FileInputStream(inFile);
		FileOutputStream output = new FileOutputStream(outFile);
		//边读,把读到的数据异或一个数据,把数据写出
		
		int content = 0;//该变量用于存储读到的数据
		while((content = input.read())!=-1){//如果没有读到文件的末尾,那么继续读取数据已经存储到content变量中了
			output.write(content^12);
		}
		//关闭资源
		output.close();
		input.close();
	}
}

    如下图:
    

     打开后:

扫描二维码关注公众号,回复: 316048 查看本文章

      

      我去,帅哥啊。

      另外,在这个过程中,我发现所占内存没有发生改变。另外还有一个问题就是?为什么我用QQ截图不能直接粘贴到Windows桌面上,而要先粘贴到QQ上,不懂不懂。

      会了这个功能之后,我们也就能够加密我们的私有信息,不让别人看到了。。

 
 

    

猜你喜欢

转载自3056434592.iteye.com/blog/2335079