文件的类型是通过头文件来区别的,这个没错!
但是你这个问题比较简单,用不上去解析头文件!
只需要在原文件流的最前面加一个标致的字节就行了!
比如,原文件加密后的字节流为:43 55 73 02
你在往文件中写的时候,在其前面加一个字节XX(01=JPG,02=BMP,03=GIF等)
如果原文件是JPG,则把流写成,01 43 55 73 02
在解密时,首先读到第一个字节,进行判断类型,把其余的字节(43 55 73 02 )写到另外一个新流中进行解密就行了!
常见文件的文件头
jpg: 255,216
gif: 71,73
bmp: 66,77
png: 137,80
doc: 208,207
docx: 80,75
xls: 208,207
xlsx: 80,75
js: 239,187
swf: 67,87
mp3: 73,68
wma: 48,38
mid: 77,84
rar: 82,97
zip: 80,75
xml: 60,63
用文件头判断。直接读取文件的前几个字节。
常用文件的文件头如下(16进制):
JPEG (jpg),文件头:FFD8FFE0或FFD8FFE1或FFD8FFE8
GIF (gif),文件头:47494638PNG (png),文件头:89504E47
TIFF (tif),文件头:49492A00
Windows Bitmap (bmp),文件头:424DC001
CAD (dwg),文件头:41433130
Adobe Photoshop (psd),文件头:38425053
Rich Text Format (rtf),文件头:7B5C727466
XML (xml),文件头:3C3F786D6C
HTML (html),文件头:68746D6C3E
Email [thorough only] (eml),文件头:44656C69766572792D646174653A
Outlook Express (dbx),文件头:CFAD12FEC5FD746F
Outlook (pst),文件头:2142444E
MS Word/Excel (xls.or.doc),文件头:D0CF11E0
MS Access (mdb),文件头:5374616E64617264204A
WordPerfect (wpd),文件头:FF575043
Adobe Acrobat (pdf),文件头:255044462D312E
Quicken (qdf),文件头:AC9EBD8F
Windows Password (pwl),文件头:E3828596
ZIP Archive (zip),文件头:504B0304
RAR Archive (rar),文件头:52617221
Wave (wav),文件头:57415645
AVI (avi),文件头:41564920
Real Audio (ram),文件头:2E7261FD
Real Media (rm),文件头:2E524D46
MPEG (mpg),文件头:000001BA
MPEG (mpg),文件头:000001B3
Quicktime (mov),文件头:6D6F6F76
Windows Media (asf),文件头:3026B2758E66CF11
MIDI (mid),文件头:4D546864