如何快速准确的识别出一个文件的具体类型
2018-04-01 10:56
253 查看
有人可能会说通过文件的后缀名就可以知道文件的类型是什么,但别忘了,后缀名是可以被修改的。同时,当我们遇到一个不带后缀名的文件的时候,难道我们就束手无策了吗?
显然不是。我们知道,在计算机的世界中,所有文件都是通过二进制中的0101来进行描述的,而计算机是如何来判断各个文件的文件类型的呢?答案就是通过魔数来进行判断。
什么是魔数?魔数就是一个文件二进制形式的前4个字节,如java的字节码文件class,它的魔数就是耳熟能详的CAFEBABE,也就是说,我们只需要通过二进制查看器查看一个文件的前4位字节,就能知道该文件的具体类型了。
如博主今天在网上保存了一张图片,结果图片是没有后缀名的,通过二进制查看器(Binary Viewer)查出该文件的魔数为89504E47,百度“魔数89504E47”可知该文件是一个png文件,于是将文件的后缀名改为.png,成功打开了图片。
![](https://img-blog.csdn.net/20180401105108628?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxOTA2NjI3OTUw/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
![](https://img-blog.csdn.net/20180401104938305?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxOTA2NjI3OTUw/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
所以说,有的时候我们不想一个文件被其他人打开的时候,仅仅改文件的后缀名可是不够的喔!
显然不是。我们知道,在计算机的世界中,所有文件都是通过二进制中的0101来进行描述的,而计算机是如何来判断各个文件的文件类型的呢?答案就是通过魔数来进行判断。
什么是魔数?魔数就是一个文件二进制形式的前4个字节,如java的字节码文件class,它的魔数就是耳熟能详的CAFEBABE,也就是说,我们只需要通过二进制查看器查看一个文件的前4位字节,就能知道该文件的具体类型了。
如博主今天在网上保存了一张图片,结果图片是没有后缀名的,通过二进制查看器(Binary Viewer)查出该文件的魔数为89504E47,百度“魔数89504E47”可知该文件是一个png文件,于是将文件的后缀名改为.png,成功打开了图片。
所以说,有的时候我们不想一个文件被其他人打开的时候,仅仅改文件的后缀名可是不够的喔!
相关文章推荐
- 重新安装一个linux系统后如何快速搭建可用于开发板nfs挂载根文件系统的过程
- 要代码 c#中如何向其中插入文件 sql数据库中有一个text类型数据
- java如何判断一个文件的类型
- 在Window8中如何挂载一个ISO文件具体该怎么操作
- 【反病毒】如何快速识别一个程序是否为病毒
- 通过文件头准确识别PHP上传的文件类型
- 如何快速读取大文件(看csdn一网友要求写的)没有测试具体的速度。
- 如何快速判断一个文件是否为病毒
- Win7系统如何快速显示文件类型的后缀名
- 当使用dbeaver导出多个sql文件,怎么快速的把它合并成一个文件,可以针对多种不同的类型
- 如何识别一个影像文件是mpeg1或mpeg2的格式(大富翁收集)
- 如何快速运行一个php文件
- 多个excel文件如何快速合并到一个excel中
- 在C#中如何确定一个文件是不是文本文件,以及如何确定一个文件的类型
- 如何检测或判断一个文件或字节流(无BOM)是什么编码类型
- 命令行快速技巧:如何定位一个文件
- 如何判断一个(压缩)文件的类型,以及zcat/gzcat
- 如何把一个基于Maven项目所有的jar文件快速列出到Excel?
- java如何判断一个文件的类型
- linux系统上如何快速的查找一个文件?