会的不多萌新一只写的不好还望担待,由于是萌新搬点砖吧(容我学习 一段时间再发)
计算机文件,是存储在某种“长期储存设备”上的一段数据流。所谓“长期储存设备”一般指磁盘、光盘、磁带等。其特点是所存信息可以长期、多次使用,不会因为断电而消失。 就比如,这些家伙,都是计算机文件
在我们眼中它们是:视频、图片、文本等不同的文件。 但在计算机眼中,它们都一样,就是一段数据流而已,通俗点说就是一段“二进制数据”。 PS:二进制,是一组由0和1组成的数字
02
—
文件被谁处理? 你想查看 .txt 格式的文本,安装了记事本软件就行;你想播放 .avi 格式的视频,安装了播放器就行;你想查看 .jpg 格式图片,安装了图片浏览器就行。结论:文件被软件处理。
什么?你说没安装软件,也可以处理? 这是因为,对于这些常见格式,操作系统自带了对应的软件 比如:window就自带了记事本、照片查看器、media player等软件。
03 —
软件处理文件的原理? 前文说,文件是一段二进制的数据流。而软件能处理文件的原因,便是因为它能正确理解数据流。 比如:当记事本软件读到“01000001”这段二进制数据时,就显示“A”字符;当图片浏览器读到这段数据时,则在屏幕绘制一粒红色的像素。 不同软件对相同数据的理解也会不一样。这个理解来源于规则,就像打篮球时,运球过肩会被裁判视为犯规,而不是加分,这不是裁判瞎理解的,只因球赛规则如此。 这里的规则指得就是数据格式。 .jpg、.txt、.avi等数据格式,都拥有自己的规则,软件选对理解数据流的规则,结果才会正确。为什么记事本软件无法正确打开 .jpg 图片?因为按照文本格式规则,是无法正确理解.jpg 格式的数据流。这就像你用打乒乓球的规则去裁判篮球输赢,最后结果必然不正确。
04
—
加密的原理 文件加密的原理:无非就是通过修改这段数据流,打乱它的规则,使其无法被软件正确理解,从而达到加密的目的。 需要注意的是:修改数据流,并非让你瞎改,你也得按照一定的“规则”来改,这个“规则”被称之为加密算法。
05
—
加密算法 加密算法分为可逆与不可逆两种。前者的意思是加密了还能解密,后者则表示无法进行解密,如果你要对文件进行加密,显然需要选择前者。 市面上有很多种成熟的可逆加密算法,比如:AES、RSA等等,当然你也可以设计新的加密算法。 以下是我设计的一种非常简单的加密算法:将0变成1,将1变成0 使用该算法加密的文件,解密也非常简单,对加密后的文件再取反一次就解回去了。
06
—
Java如何实现本案例? Java中有个技术叫做IO流,通过流将文件的“二进制数据”读取到内存,再按照加密算法修改数据,最后将修改了的数据从内存中写出去。
|