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上,不懂不懂。
会了这个功能之后,我们也就能够加密我们的私有信息,不让别人看到了。。
相关推荐
1. **加密过程**:读取原始文件(如a.txt)的字节数据,逐个字节与一个预设的密钥(在这个例子中为1234)进行异或操作,然后将结果写入目标文件(如b.txt)。这样,原始数据就被“加密”了,因为没有密钥的人无法...
在这个场景中,我们讨论的是一个使用C++语言实现的异或(XOR)加密算法,用于对文件进行加密。异或加密是一种简单但有效的加密方法,尤其适用于初级加密需求或者理解加密原理。 异或(XOR)运算是一种二进制逻辑运算,...
给定的代码实现了对文件“config.ini”的异或加密,并将加密后的内容写入到新文件“test.ini”中。 1. **文件读取**:首先通过 `fopen()` 函数打开指定文件“config.ini”,模式为“rb”,表示以二进制方式只读打开...
解密过程是加密过程的逆操作,通过再次对加密图像和相同的伪随机比特流进行异或,可以恢复原始图像。然而,需要注意的是,任何对伪随机比特流的微小改变都会导致解密失败,因此,安全地存储和保护比特流至关重要。 ...
5. **解密**:解密时,读取加密文件的第一个字节,与同一密钥进行异或,得到原来的字节,写回文件。 这种加密方式虽然能显著提升加密速度,但由于只加密了第一个字节,它的安全性非常有限。对于纯文本文件,尤其是...
因为异或加密的弱点在于,如果使用相同的密钥对同一个文件进行多次加密和解密,最终结果将保持不变。因此,对于更高级的安全需求,应考虑使用如AES(高级加密标准)等更强大的加密算法。 在提供的链接中,你可以...
做了那么多 Lua 脚本破解,我们来尝试写一个不能被破解的加密。 所谓不能被破解,并不是真正不能被破解,只是在没有密码的情况下很难破解。
在加密上下文中,我们可以用一个固定的密钥(通常也是二进制形式)与明文数据进行异或操作。加密过程是明文与密钥异或,解密过程则是加密后的密文与相同的密钥再次异或,因为两次异或同一个密钥会恢复原数据。这种...
对文件进行异或加密解密。注释有,稍微还有点bug,但是不是很影响吧。采用C语言编写的。能够对一个文本文件进行异或加密,加密成论文一个文件,还可以解密,解密成一个解密文件
3. **解密过程**:解密与加密类似,只是再次使用相同的密钥对加密后的数据进行异或。由于异或的性质,连续两次异或同一个值会还原原值,所以原始数据能够被正确恢复。 4. **安全性**:异或加密虽然易于理解和实现,...
文件"www.pudn.com.txt"可能是用异或加密处理过的一个文本文件,而"YIHUO"可能是一个程序或者解释了加密算法的文档。通过分析这些文件,我们可以深入理解异或加密的工作机制,以及如何在实际应用中实施。 异或加密...
在解密时,再用相同的密钥对加密后的数据进行异或,就能恢复出原始数据。因此,密钥的选择和管理是异或加密的关键。 在VC6.0中实现异或加密,首先需要打开一个新的C++工程,然后创建一个函数来处理加密过程。这个...
读取文件内容到字节数组,进行异或操作后将结果写入新文件,完成文件的加密。解密过程则相反,从加密文件读取字节,解密后再写入新文件。 6. 安全性考虑:尽管异或加密简单易用,但其安全性相对较低。由于使用相同...
同时,考虑到文件的加密,你可能需要将整个文件读取为字节数组,然后进行加密或解密,最后再将结果写回文件。 以上就是关于C#异或加密数字的基本介绍,包括原理、实现方式以及相关代码示例。通过这个实例,开发者...
7. Project2.exe:这是实际的可执行文件,包含了程序的全部功能,用户可以直接运行这个文件来使用异或加密解密工具。 8. Unit1.pas:这是Delphi的源代码文件,包含了程序的逻辑和功能实现,尤其是与Unit1.dcu相对应...
在加密过程中,通常使用一个密钥(也称为“XOR键”)与明文数据逐位进行异或操作,生成密文。解密时,再次用同样的密钥与密文进行异或,可以恢复原始数据。 在C#中,我们可以使用`System.Text.Encoding`类将字符串...
这个压缩包文件"delphi异或加密解密实例"应该包含一个完整的Delphi项目,包括源代码、说明文档等,供初学者学习和实践。通过分析和运行这个实例,你可以更好地理解异或加密的原理,并将其应用于自己的项目中。在实际...
3.为了保护文件,本软件没有直接对原文件进行操作,而是拷备出副本,然后进行操作,所以如果软件出现问题,不会损坏原文件。 4.本软件对文件的属性没要求,即使文件是系统、隐藏属性,本软件也能不改变文件的属性而...
在"Java异或加密解密.txt"这个文件中,可能包含了具体的Java代码示例,展示了如何使用Java实现上述的异或加密和解密过程。通过阅读和理解这段代码,你可以学习到如何在Java程序中应用异或加密技术,从而保护敏感数据...
通过阅读这些文档,读者可以更好地理解和实践文件异或加密技术,并根据自己的需求对其进行调整和优化。 总的来说,文件异或加密是一种基础的加密方法,它易于理解和实现,但安全性相对较低。对于需要更高安全性的...