A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

[技术笔记] 技术贴

© 珍贵 初级黑马   /  2018-5-12 23:40  /  671 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

                 会的不多萌新一只写的不好还望担待,由于是萌新搬点砖吧(容我学习 一段时间再发)
     
计算机文件,是存储在某种“长期储存设备”上的一段数据流。所谓“长期储存设备”一般指磁盘、光盘、磁带等。其特点是所存信息可以长期、多次使用,不会因为断电而消失。
就比如,这些家伙,都是计算机文件

在我们眼中它们是:视频、图片、文本等不同的文件。
但在计算机眼中,它们都一样,就是一段数据流而已,通俗点说就是一段“二进制数据”。
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流,通过流将文件的“二进制数据”读取到内存,再按照加密算法修改数据,最后将修改了的数据从内存中写出去。



               这里还有个壁虎大佬发的感言  (有技术肯定比没技术活得好,我看见过16岁就又别人30  40岁才有的编程技术,有句话是这样子讲                              的,比你优秀的人还在努力,你有什么资格放松?共勉)https://mp.weixin.qq.com/s/viPNPk9rheXGJsF9qwQFXw
集合竟然不能增删,问题一定出在这儿:https://mp.weixin.qq.com/s/i4gjSq0i_p31e1rpiLn9qA





2 个回复

倒序浏览
回复 使用道具 举报
不单调,也很明白嘿嘿
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马