所謂編碼 (encode) 就是把某些符號編上號碼,如此而已。 廣義來說,把 ASCII 字符編上號碼、把 Big-5 字集編上號碼,都是編碼。 但是此處特別指的是把數位資料改編一種特殊的號碼,使得不論原來的資料是什麼類型, 編碼之後一定可以成為純文字文件 (只含 ASCII 的文件)。
早期的電子郵件軟體,包括 MUA 和 MTA,都被設計得只能處理純文字文件, 一旦郵件內容中出現非 ASCII 資料,就有可能導致電子郵件軟體失常。 此外還有一些傳統的網路工具軟體,也都只能接受 ASCII 資料。 因為這些理由,發展出各種編碼規則,使得所有的資料流 (byte stream) 不管是不是 ASCII 都可以被轉換成 ASCII。 在傳送之前,把檔案先編碼成純文字文件;在接收之後,再反向解碼 (decode) 成原來的資料流。
如果不懂得編碼規則,那麼編碼後的文件,的確看起來很神秘,似乎有保密效果。 其實不然。編碼的目的絕非保密,所以其背後都只有非常單純的規則。 為了不浪費計算資源在編碼和解碼上,這些規則當初故意被設計得很簡單。 任何有心人只要做一點實驗,就會發現這些規則。 因此編碼絕不可以拿來當密碼用。
這是伴隨 WWW 而生的編碼,為了讓不同作業系統之間可以順暢地交換網址, 以及指稱不同 OS 之主機內部的檔案樹,所以設計了這套編碼。
如果 E-Mail 的內容大部分是 ASCII,只有少部份不是 (例如是 Latin-1 或 Big-5 碼),那麼這是最方便的編碼。它包留了幾乎所有的 ASCII 碼不變,只把非 ASCII 的部份用其十六進制數字代換。
如今絕大部分的 MUA 都自動以這個編碼規則處理 E-Mail 的附件。 稍後我們就明白,如果附件本身就已經是純文字文件,那就會浪費空間。
除了應用在 E-Mail 附件之外,base64 也用來編碼非對稱加密系統中之私鑰與公鑰。 這兩支金鑰都是大整數,例如長達 1024 bits。應用軟體通常用 base64 來編碼這 1024 bits, 使得用戶可以用普通編輯器看到這兩支金鑰 (一般來說,看到也沒用)。
這是最古老的編碼。早在 1970 年代,UNIX 與 Unix (就是名字當中 UU 的意思) 之間還用普通電話線與數據機連線的時候,就已經發展出來相當複雜的電子郵件、 網路論壇 (news) 這些通訊功能。而當年的通訊,經常靠著 UUencode 和 UUdecode 來傳送可執行檔、圖檔或其他非文字檔案。
這是 Mac 家族常用的編碼。
下是兩年前隨便放一點備忘。 base64: A-Z a-z 0-9 + / (= for padding) quoted-printable: 0-1 A-F = at end is soft newline, = itself is =3D Binhex encoding converts an 8-bit file into a 7-bit format, similar to uuencoding. Binhex format preserves file attributes, as well as Macintosh resource forks, and includes CRC (Cyclic Redundancy Check) error-checking. This encoding method works on any type of file, including formatted word processing and spreadsheet files, graphics files, and even executable files (i.e. programs or applications). Here is a sample of what BinHex actually looks like: (This file must be converted with BinHex 4.0) :$f*TEQKPH#jdCA0d,R0TG!"6594%8dP8)3#3"!&m!*!%EMa6593K!!%!!!&mFNa KG3,r!*!$&[rr$3d,BQPZD'9i,R4PFh3!RQ+!!"AV#J#3!i!!N!@QKUjrU!#3'[q 3"&4&@&483N)f!3#Xaj6bV-H8mJ!!!B3!N!0"!*!$[3#3!cR@iiY)!*!'[I%4!!J Fp$X%X3@J!mZE6!GRiKUi$HGKMf0U61S46%i1"AB!TI,fLl!d1X3RDDE8ALfTCbM 8UP9p4iUqY-0k4krHpk9XK@`rbj2Ti'U@5rGH@+[fr-i4T6-qXpfl26,k!H5$Nml TIkI'(l3GI4)f8mII&01CNEbC2LrNLBeaZ1HG@$G8!Z6"k)hh,q9p"r6FC*!!Se" (ic,Pd(4(b`pflKC`H1&JN5)GVX3mREdH55[l`%`Yhp%q092c`A(hPV)!83Dr&f4 $$L#I1aM-"VjqV-q$34KQq6$M$f8#,Zc,i),!(`*ZN!$K$rS!LA%3cL+dYi"@,K( Z"`#3!fKi!!!: Note that all lines other than the header and the last line are exactly 64 characters long (not counting the newline characters). If you receive a file in email containing lines of varying lengths, then someone's mail system may have damaged the file and you'll probably need to have it resent.
課外讀物:
[1] 關於 BinHex 的介紹與工具整理
http://www.natural-innovations.com/boo/binhex.html
單維彰 (00/11/11) --- 02/11/05 (單)