使用异或对文件进行加密

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();
	}
}

    如下图:
    

     打开后:

      

      我去,帅哥啊。

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

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

 
 

 

    

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值