`

使用异或对文件进行加密

    博客分类:
  • Java
 
阅读更多

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上,不懂不懂。

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

 
 

 

    

  • 大小: 22.8 KB
  • 大小: 4.7 KB
  • 大小: 8.5 KB
  • 大小: 250.3 KB
分享到:
评论

相关推荐

    java使用异或对文件进行加密解密

    1. **加密过程**:读取原始文件(如a.txt)的字节数据,逐个字节与一个预设的密钥(在这个例子中为1234)进行异或操作,然后将结果写入目标文件(如b.txt)。这样,原始数据就被“加密”了,因为没有密钥的人无法...

    加密算法,对一个文件利用异或算法加密,加密结果存放在另一个文件中。

    在这个场景中,我们讨论的是一个使用C++语言实现的异或(XOR)加密算法,用于对文件进行加密。异或加密是一种简单但有效的加密方法,尤其适用于初级加密需求或者理解加密原理。 异或(XOR)运算是一种二进制逻辑运算,...

    异或加密算法C 文件加密

    给定的代码实现了对文件“config.ini”的异或加密,并将加密后的内容写入到新文件“test.ini”中。 1. **文件读取**:首先通过 `fopen()` 函数打开指定文件“config.ini”,模式为“rb”,表示以二进制方式只读打开...

    归档_matlab_灰度图像加密_异或加密_图像加密_

    解密过程是加密过程的逆操作,通过再次对加密图像和相同的伪随机比特流进行异或,可以恢复原始图像。然而,需要注意的是,任何对伪随机比特流的微小改变都会导致解密失败,因此,安全地存储和保护比特流至关重要。 ...

    (Java)文件快速加密(异或加密)

    5. **解密**:解密时,读取加密文件的第一个字节,与同一密钥进行异或,得到原来的字节,写回文件。 这种加密方式虽然能显著提升加密速度,但由于只加密了第一个字节,它的安全性非常有限。对于纯文本文件,尤其是...

    Qt异或实现文件加解密

    因为异或加密的弱点在于,如果使用相同的密钥对同一个文件进行多次加密和解密,最终结果将保持不变。因此,对于更高级的安全需求,应考虑使用如AES(高级加密标准)等更强大的加密算法。 在提供的链接中,你可以...

    lua脚本加密工具:简单异或加密

    做了那么多 Lua 脚本破解,我们来尝试写一个不能被破解的加密。 所谓不能被破解,并不是真正不能被破解,只是在没有密码的情况下很难破解。

    c#异或和加1加密

    在加密上下文中,我们可以用一个固定的密钥(通常也是二进制形式)与明文数据进行异或操作。加密过程是明文与密钥异或,解密过程则是加密后的密文与相同的密钥再次异或,因为两次异或同一个密钥会恢复原数据。这种...

    文件加密解密(异或加密解密)

    对文件进行异或加密解密。注释有,稍微还有点bug,但是不是很影响吧。采用C语言编写的。能够对一个文本文件进行异或加密,加密成论文一个文件,还可以解密,解密成一个解密文件

    c++写的简单的异或加密

    3. **解密过程**:解密与加密类似,只是再次使用相同的密钥对加密后的数据进行异或。由于异或的性质,连续两次异或同一个值会还原原值,所以原始数据能够被正确恢复。 4. **安全性**:异或加密虽然易于理解和实现,...

    YIHUO.rar_密钥加密 异或_异或_异或加密

    文件"www.pudn.com.txt"可能是用异或加密处理过的一个文本文件,而"YIHUO"可能是一个程序或者解释了加密算法的文档。通过分析这些文件,我们可以深入理解异或加密的工作机制,以及如何在实际应用中实施。 异或加密...

    异或加密VC6.0代码

    在解密时,再用相同的密钥对加密后的数据进行异或,就能恢复出原始数据。因此,密钥的选择和管理是异或加密的关键。 在VC6.0中实现异或加密,首先需要打开一个新的C++工程,然后创建一个函数来处理加密过程。这个...

    C#_Winform异或加密.rar

    读取文件内容到字节数组,进行异或操作后将结果写入新文件,完成文件的加密。解密过程则相反,从加密文件读取字节,解密后再写入新文件。 6. 安全性考虑:尽管异或加密简单易用,但其安全性相对较低。由于使用相同...

    C# 异或加密数字 实例源码(加密解密)

    同时,考虑到文件的加密,你可能需要将整个文件读取为字节数组,然后进行加密或解密,最后再将结果写回文件。 以上就是关于C#异或加密数字的基本介绍,包括原理、实现方式以及相关代码示例。通过这个实例,开发者...

    异或算法加密与解密工具

    7. Project2.exe:这是实际的可执行文件,包含了程序的全部功能,用户可以直接运行这个文件来使用异或加密解密工具。 8. Unit1.pas:这是Delphi的源代码文件,包含了程序的逻辑和功能实现,尤其是与Unit1.dcu相对应...

    .NET异或加密数字实例源码

    在加密过程中,通常使用一个密钥(也称为“XOR键”)与明文数据逐位进行异或操作,生成密文。解密时,再次用同样的密钥与密文进行异或,可以恢复原始数据。 在C#中,我们可以使用`System.Text.Encoding`类将字符串...

    delphi异或加密解密实例

    这个压缩包文件"delphi异或加密解密实例"应该包含一个完整的Delphi项目,包括源代码、说明文档等,供初学者学习和实践。通过分析和运行这个实例,你可以更好地理解异或加密的原理,并将其应用于自己的项目中。在实际...

    文件多层异或MD5加密软件

    3.为了保护文件,本软件没有直接对原文件进行操作,而是拷备出副本,然后进行操作,所以如果软件出现问题,不会损坏原文件。 4.本软件对文件的属性没要求,即使文件是系统、隐藏属性,本软件也能不改变文件的属性而...

    Java异或 加密 和 解密方法

    在"Java异或加密解密.txt"这个文件中,可能包含了具体的Java代码示例,展示了如何使用Java实现上述的异或加密和解密过程。通过阅读和理解这段代码,你可以学习到如何在Java程序中应用异或加密技术,从而保护敏感数据...

    文件加密技术一例.zip_加密程序_文件加密_文件异或加密

    通过阅读这些文档,读者可以更好地理解和实践文件异或加密技术,并根据自己的需求对其进行调整和优化。 总的来说,文件异或加密是一种基础的加密方法,它易于理解和实现,但安全性相对较低。对于需要更高安全性的...

Global site tag (gtag.js) - Google Analytics