表示不同文件类型的魔术数字

摘要:
这里提到的幻数代表不同的文件类型。它们是文件的前几个字节,用于唯一区分其他文件类型。有了这些神奇的数字,我们可以很容易地区分不同的文件,这也使编程更容易,因为我减少了我们区分文件类型所需的时间。

这里所说的表示不同文件类型的魔术数字,指定是文件的最开头的几个用于唯一区别其它文件类型的字节,有了这些魔术数字,我们就可以很方便的区别不同的文件,这也使得编程变得更加容易,因为我减少了我们用于区别一个文件的文件类型所要花费的时间。

比如,一个JPEG文件,它开头的一些字节可能是类似这样的”ffd8 ffe0 0010 4a46 4946 0001 0101 0047 ……JFIF…..G“,这里”ffd8“就表示了这个文件是一个JPEG类型的文件,”ffe0“表示这是JFIF类型结构。

以下例出的是一些我们常见的文件类型,以及它用于判断这种文件的类型的几个开始字节及所对尖的ASCII数字:

图片文件

文件类型扩展名16进制数字
xx这里表示变量
Ascii数字
. = 不是Ascii字符
Bitmap format.bmp42 4dBM
FITS format.fits53 49 4d 50 4c 45SIMPLE
GIF format.gif47 49 46 38GIF8
Graphics Kernel System.gks47 4b 53 4dGKSM
IRIS rgb format.rgb01 da..
ITC (CMU WM) format.itcf1 00 40 bb….
JPEG File Interchange Format.jpgff d8 ff e0….
NIFF (Navy TIFF).nif49 49 4e 31IIN1
PM format.pm56 49 45 57VIEW
PNG format.png89 50 4e 47.PNG
Postscript format.[e]ps25 21%!
Sun Rasterfile.ras59 a6 6a 95Y.j.
Targa format.tgaxx xx xx
TIFF format (Motorola – big endian).tif4d 4d 00 2aMM.*
TIFF format (Intel – little endian).tif49 49 2a 00II*.
X11 Bitmap format.xbmxx xx 
XCF Gimp file structure.xcf67 69 6d 70 20 78 63 66 20 76gimp xcf
Xfig format.fig23 46 49 47#FIG
XPM format.xpm2f 2a 20 58 50 4d 20 2a 2f/* XPM */

压缩文件

文件类型扩展名16进制数字
xx这里表示变量
Ascii数字
. = 不是Ascii字符
Bzip.bz42 5aBZ
Compress.Z1f 9d..
gzip format.gz1f 8b..
pkzip format.zip50 4b 03 04PK..

存档文件

文件类型扩展名16进制数字
xx这里表示变量
Ascii数字
. = 不是Ascii字符
TAR (pre-POSIX).tarxx xx(a filename)
TAR (POSIX).tar75 73 74 61 72ustar (offset by 257 bytes)

可执行文件

文件类型扩展名16进制数字
xx这里表示变量
Ascii数字
. = 不是Ascii字符
MS-DOS, OS/2 or MS Windows 4d 5aMZ
Unix elf 7f 45 4c 46.ELF

其它文件

文件类型扩展名16进制数字
xx这里表示变量
Ascii数字
. = 不是Ascii字符
pgp public ring 99 00..
pgp security ring 95 01..
pgp security ring 95 00..
pgp encrypted data a6 00¦.

本文转自冯立彬的博客,原文地址:http://www.fenglibin.com/file_magic_numbers.html

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

免责声明:文章转载自《表示不同文件类型的魔术数字》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇如何用C#制作Excel AddInaxios 正确打开方式下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

interlliJ idea 不识别文件类型的解决方式

idea 支持非常多种文件类型。然而总有想不到。 近期开发jenkins 插件,jenkins 插件的页面开发大多用jelly 如何让idea识别jelly呢? ctrl+alt+s 快捷键打开配置页面。 搜索file type, 加入一个file类型,此处文件名称写jelly file 然后加入一个patterns。设置为*.jelly。 OK了 就像...

Modbus消息帧

  两种传输模式中(ASCII和RTU),传输设备以将Modbus消息转为有起点和终点的帧,这就允许接收的设备在消息起始处开始工作,读地址分配信息,判断哪一个设备被选中(广播方式则传给所以设备),判知何时信息已完成。部分的消息也能侦测到并且错误能设置为返回结果。   1、ASCII帧   使用ASCII模式,消息以冒号(:)字符(ASCII 3AH)开始,...

基于S3C2440的linux-3.6.6移植——LED驱动【转】

本文转载自:http://www.voidcn.com/blog/lqxandroid2012/article/p-625005.html 目前的linux版本的许多驱动都是基于设备模型,LED也不例外。 简单地说,设备模型就是系统认为所有的设备都是挂接在总线上的,而要使设备工作,就需要相应的驱动。设备模型会产生一个虚拟的文件系统——sysfs,它给用户提...

Linux/Unix 桌面趣事:文字模式下的 ASCII 艺术与注释绘画

boxes 命令不仅是一个文本过滤器,同时是一个很少人知道的有趣工具,它可以在输入的文本或者代码周围框上各种ASCII 艺术画。你可以用它快速创建邮件签名,或者在各种编程语言中留下评论块。这个命令可以在 vim 文本编辑器中使用,但是也可以在各种支持过滤器的文本编辑器中使用,同时也可以在命令行中单独使用。 任务: 安装 boxes 使用 apt-get 命...

【转】mysql字符串函数

对于针对字符串位置的操作,第一个位置被标记为1(即:第一个字母索引为1)。 ASCII(str) 返回字符串str的 最左面字符的ASCII代码值。如果str是空字符串, 返回0。如果str是NULL,返回NULL。 mysql> select ASCII('2'); -> 50mysql> select ASCII(2...

iOS中NSString转换成HEX(十六进制)-NSData转换成int

http://www.2cto.com/kf/201402/281501.html 1 2 3 4 5 6 NSString *str = @"0xff055008"; //先以16为参数告诉strtoul字符串参数表示16进制数字,然后使用0x%X转为数字类型 unsigned longred = strtoul([str UTF8Stri...