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上,不懂不懂。
会了这个功能之后,我们也就能够加密我们的私有信息,不让别人看到了。。