文件头的相关知识
文件头和文件尾的作用是识别这个文件的类型,描述了文件的格式和内容,实际上就是告诉计算机怎样去解析一个文件。
常见的文件类型以及对应的文件头
JPEG (jpg),文件头:FFD8FF
PNG (png),文件头:89504E47
GIF (gif),文件头:47494638
TIFF (tif),文件头:49492A00
Windows Bitmap (bmp),文件头:424D
CAD (dwg),文件头:41433130
Adobe Photoshop (psd),文件头:38425053
Rich Text Format (rtf),文件头:7B5C727466
XML (xml),文件头:3C3F786D6C
HTML (html),文件头:68746D6C3E
MS Word/Excel (xls/doc),文件头:D0CF11E0
MS Access (mdb),文件头:5374616E64617264204A
Adobe Acrobat (pdf),文件头:255044462D312E
Quicken (qdf),文件头:AC9EBD8F
ZIP Archive (zip),文件头:504B0304
RAR Archive (rar),文件头:52617221
Wave (wav),文件头:57415645
AVI (avi),文件头:41564920
MPEG (mpg),文件头:000001BA
MPEG (mpg),文件头:000001B3
Quicktime (mov),文件头:6D6F6F76
Windows Media (asf),文件头:3026B2758E66CF11
MIDI (mid),文件头:4D546864
对于文件类型,我们常用扩展名表示,例如,一个文本文件的扩展名是“txt”,一个可执行文件的扩展名是“exe”,然而在实际上,文件头是一个很重要的东西,这不一种文件的仪式感,比如有时候你会与遇到一张图片文件加载失败,但换另外一张同样扩展名的文件就能加载,为了验证这个“比如”,请看我下面的操作。
由上表得知,jpg的文件头是“FFD8FF”,使用 WinHex 加载这个图片文件,发现确实如此!
接着,我们人为的将这个文件头改成压缩包格式“rar”的文件头“52617221”后并保存!
此时可以看到,文件扩展名然是jpg,但是,此时的文件头已经变成了RAR 压缩包的文件头了,此时势必图片将无法加载!
由此可见文件头还是比较重要的,当我们更改了文件头,计算机虽然认识扩展名,但是文件头是压缩包的格式,当把一个压缩包当做图片来解析,肯定就提示文件类型不正确咯 ~
有意思的知识扩展
在这些当中,还有个特殊的类型,就是没有文件头,好比“txt”文件在编码格式是“ANSI”时,这时这个txt文件是没有文件头的,我们可以来看一下!
但当我们将扩展名更改成其他文件类型的时候,他就会被添加上文件头
这个时候,我们是不是有些小收获呢?遇到无法解析的文件,我们不妨把它更改个文件扩展名,让系统更改下他的文件头,说不定能发现新大陆呢?
来源:oschina
链接:https://my.oschina.net/u/4275057/blog/4253584