关于不可识别文件到可识别文件的测试(Base64)
2004-12-24 22:29:30
说到把不可识别文件转换成可识别文件大家一定会想到B6编码。 我们最常用的就是email了。 比如说:信的内容是文本,附件的类型可能是图片,视频,音频文件等等。在发送email的时候首先把这些文件分别编码,用内容类型分割符号分割开来。然后做为一个整体发送出去。 接收email的程序在对于每一断内容进行解码。解码的过程是最复杂的,因为email可以作为附件发送,而email的email也可以看做一个附件。。
一般一个简单的email正文件格式如下:Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 Message-Id: <200412240904906.SM01104@cheung>
xxxx---- Content-Type: image/gif Content-Transfer-Encoding: base64 Message-Id: <200412240904906.SM01105@cheung> xxx----
这封信就是一个文本内容加上一个简单的图片附件格式发送的。
这个是在email中的应用,我就不多说了。
我说一下在mht文件中的应用。 如果不了解mht文件请到google中搜索一下相关文章。
首先,我们做一个简单的测试。把现面这个图片做一个b6编码。

B6编码如下:
R0lGODlheAB4APf/AAAtnf/39Ao7pKO64hFLrf8TCv+hjZy24Nnj9AAlmiNatAo1of8jCgA1ocHR 7Pb4/v/49hxVsf8yEWuRzv8JAP9FIszZ8FyGyf/8+5mz3//6+AAclObs+fH1/P+smvn6/v9KJfv8 /3KX0f9ZOf8KCqrA5LzN6o6q2fT3/f/d1bHF5v/28/99Yvz9/0Jyv/8aCv85FP/WzP+yon2e1HeZ 0cXV7v/08Heb0vr7/pSu3AoblGGIyd3m9v/w7P8eCujt+QA5o/9kSTVpvAAWkuzx+ithtgAhl/88 GP+Wf//BtP8OCv/9/K7D5QxGqSpftoKh1v8EAIin2P/FuP/i2v9OK6/F5k16xP+wnP/Z0FN/xf+b iIuq25aw3ai94+Hp9/+JcP8qCP9UM/L2/P/y7v+mlP9iQurw+v/s5tfh9Aoomv+PeWuOzP9dPdvl 9f/a0Qosnv96XP/SyP8OAER0wAArnP9pTEh2wbnK6e7y+//q5ApAp/8vD//k3Qown2eNzdDc8QAo m/8zC/9AHP9uUP+AZzttvf+dhkx4w+Ts+AoflmSKyv+ahi9kuP9zVv+9rz1wvv+qmUl5wv+Gbf+E a8rZ8P/PxP/Nwv/JvP9QL/9wUzNmubnM6rPI6AAxn/+3qQokmImk14aj132d0/91V/9kRVaBxhRP r/8oCv8WAAASkP////8KAP8HAP8MAP/c0////v/+/f8DAP7////+/v7+/+3y+//7+v/t6P/o4+Pq 9/8qDP3+//9cO/f5/v/h2v+TffX4/f+Yg9Pe8v+zpP/LwP/18tHe8v/o4Q9Jq098xP/j3f92Wv+N d/+/ssTT7f+1pv9sT+/0+//598rY75Gq2tDc8v/g2P+Cav9nSf+Lc//u6f/v6v+olf/s45u44LzP 7F+Hyf/r4v/k2+Tr922Sz//n4X+g1v/YzXqb0//b0//z612Fx9bf8/+RePb4/f+unf/x7b7Q65Gs 2pGt3P/58uTr+P8bAIal18jW7v9cNgormyZetf8nAP+Jcf8AAP///yH5BAEAAP8ALAAAAAB4AHgA AAj/AP8JHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3MixIqyOIEN2xBJDpMmTEwPoQsmypUJV JG65nEnzH4lhNXOehEVCks6fIMf4YwG0qEYp/pgZXWoRhD9HTKNGtEUiptSrDeP484G1a0JYDPx5 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 HFVJr/MNMgXUT//6jA0IADs=
注意标准的b6编码应该是矩形的。
如果你把这个文件解码的时候,必须读一行解一行。还可以把这些字符用b6反编码会原来的图片。
下面我们建立一个mht文件,内容如下: gif.mht
----------------------------------------------- Content-Type: image/gif; Content-Transfer-Encoding: base64 Message-Id: <200412240904906.SM01104@cheung> R0lGODlheAB4APf/AAAtnf/39Ao7pKO64hFLrf8TCv+hjZy24Nnj9AAlmiNatAo1of8jCgA1ocHR 7Pb4/v/49hxVsf8yEWuRzv8JAP9FIszZ8FyGyf/8+5mz3//6+AAclObs+fH1/P+smvn6/v9KJfv8 /3KX0f9ZOf8KCqrA5LzN6o6q2fT3/f/d1bHF5v/28/99Yvz9/0Jyv/8aCv85FP/WzP+yon2e1HeZ 0cXV7v/08Heb0vr7/pSu3AoblGGIyd3m9v/w7P8eCujt+QA5o/9kSTVpvAAWkuzx+ithtgAhl/88 GP+Wf//BtP8OCv/9/K7D5QxGqSpftoKh1v8EAIin2P/FuP/i2v9OK6/F5k16xP+wnP/Z0FN/xf+b iIuq25aw3ai94+Hp9/+JcP8qCP9UM/L2/P/y7v+mlP9iQurw+v/s5tfh9Aoomv+PeWuOzP9dPdvl 9f/a0Qosnv96XP/SyP8OAER0wAArnP9pTEh2wbnK6e7y+//q5ApAp/8vD//k3Qown2eNzdDc8QAo m/8zC/9AHP9uUP+AZzttvf+dhkx4w+Ts+AoflmSKyv+ahi9kuP9zVv+9rz1wvv+qmUl5wv+Gbf+E a8rZ8P/PxP/Nwv/JvP9QL/9wUzNmubnM6rPI6AAxn/+3qQokmImk14aj132d0/91V/9kRVaBxhRP r/8oCv8WAAASkP////8KAP8HAP8MAP/c0////v/+/f8DAP7////+/v7+/+3y+//7+v/t6P/o4+Pq 9/8qDP3+//9cO/f5/v/h2v+TffX4/f+Yg9Pe8v+zpP/LwP/18tHe8v/o4Q9Jq098xP/j3f92Wv+N d/+/ssTT7f+1pv9sT+/0+//598rY75Gq2tDc8v/g2P+Cav9nSf+Lc//u6f/v6v+olf/s45u44LzP 7F+Hyf/r4v/k2+Tr922Sz//n4X+g1v/YzXqb0//b0//z612Fx9bf8/+RePb4/f+unf/x7b7Q65Gs 2pGt3P/58uTr+P8bAIal18jW7v9cNgormyZetf8nAP+Jcf8AAP///yH5BAEAAP8ALAAAAAB4AHgA AAj/AP8JHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3MixIqyOIEN2xBJDpMmTEwPoQsmypUJV JG65nEnzH4lhNXOehEVCks6fIMf4YwG0qEYp/pgZXWoRhD9HTKNGtEUiptSrDeP484G1a0JYDPx5 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 HFVJr/MNMgXUT//6jA0IADs=
然后用MS.IE打开看看,看到了什么,是不是那张图片。
然后你在用浏览器的查看源文件,看到的信息如下:
<P> <CENTER><IMG SRC="CID:{CC62AC91-89CF-432A-8673-4A9379C85E62}/ATT00001.gif"></CENTER>
象Mozilla Firefox 等浏览器还是不支持的.
|