有时候,咱们会下载到或者从邮箱接收到一些莫名其妙的文件——只有名字,没有后缀名(文件扩展名),排除不安全因素后,肯定这就是咱们想要的文件,可是不知道文件格式或者不知道用什么软件来打开查看,对于大多数人来讲这但是个比较头疼的问题。c++
可是,若是掌握一些基础知识的话,这样的问题实际上是很好解决的!浏览器
知识点一:安全
文件后缀名(扩展名)和文件格式没有半毛钱关系!工具
文件格式其实是由文件开头的若干字节来描述的,这些文件描述称为“文件头”(注意,不是c/c++里的头文件)。spa
那么,后缀名是用来作什么的呢?后缀名仅仅是为了方便从文件名中知道文件是什么格式,一方面给用户(你,我,他)看,另外一方面给操做系统看,由操做系统判断使用哪一个阅读器、浏览器、工具等软件打开,而这些软件对文件的解析就是根据“文件头”的描述来进行的。操作系统
知识点二:excel
本质上全部的文件都是二进制文件!图片
文本、源码(其实也是文本)、word、excel、ppt、pdf、dll、exe、图片、压缩包……都是二进制文件,由于现代计算机系统只认识0和1。不信的话能够用十六进制工具打开来查看。ip
好了,有了这两个基础知识,咱们就能够进行继续了。上面提到了十六进制工具,这里咱们要使用的神器也正是它!ci
这是一张png图片,用十六进制打开后是这样的,能够明显看到有PNG字样。
这是一个pdf文件,也能够明显看到PDF字样。
就再也不贴图了,套路就是这么个套路,下面就直接上整理好的经常使用的对应表了!
文件格式 | 文件头 |
---|---|
bmp图片 | 42 4D (BM) |
png图片 | 89 50 4E 47 (‰PNG) |
jpg图片 | FF D8 |
pdf文档 | 25 50 44 46 (%PDF) |
zip压缩包 | 50 4B (PK) |
rar压缩包 | 52 61 72 (Rar) |
7z压缩包 | 37 7A (7z) |
docx、xlsx、pptx | 50 4B (PK) |
dll或exe | 4D 5A (MZ) |
可看到,Microsoft Office 2007 及以上版本的 docx、xlsx、pptx 与 zip压缩包的文件头是同样的,是否是搞错了?没错,Microsoft Office 2007 及以上版本的 docx、xlsx、pptx 实际上就是一个 zip压缩包,不信的小伙伴儿们能够把后缀名改成zip用解压工具打开看看真面目。
就到这里吧,更多文件格式就烦请亲自动手尝试了,说不定会有什么惊奇的发现呢!