Base64 是一種以 64 個可打印 ASCII(美國信息交換標準代碼)字符為基數的位置編號系統。例如,該系統用於在電子郵件中顯示二進製文件。所有 Base64 變體都使用字符 A-Z、a-z 和 0-9,總共 62 個字符,在實現系統中將缺少的兩個字符替換為不同的字符。每三個原始字節用四個字符編碼。
Base64 的歷史
起初,只能通過電子郵件發送文本 (RFC 822)。隨著時間的推移,除了傳輸文本之外,還需要傳輸音頻、視頻和圖形文件、應用程序等。需要將二進製文件轉換為文本。 Base64 被添加到當時現有的 UUE 編碼 (Uuencode) 中,該編碼用於 MIME(多用途 Internet 郵件擴展)規範 (RFC 2045-2049)。
MIME 是一種描述電子消息標題的標準。它的使用允許您在一封信中發送多個附件,例如存檔和文本文件或 HTML 頁面。一個支持 MIME 的電子郵件程序可以自由地從文本文件中提取存檔、顯示消息並解析 HTML 標記。例如,Outlook Express 會自動運行嵌入在 HTML 頁面中的腳本。
Base64 誕生於七位、六位和三位字節的時代。舊編碼不支持八位標準,因此,從舊系統傳輸到新系統時,部分信息會丟失。通常,在發送信件時,郵件服務器會丟失一個額外的、八分之一的比特,或者沒有傳輸視頻和圖像。為了消除這些麻煩,開發了將二進制代碼轉換為文本的編碼。最流行和最有效的系統是 Base64,由於它的簡單性,它無處不在。
一種稱為“打印編碼”的算法於 1987 年首次被描述,Base64 於 1992 年 6 月出現。該系統的版本有Base16、Base32、Base36、Base58、Base85、Base91和Base122。後來的標准在 IT 領域得到積極使用。
有趣的事實
一些系統使用 Base58 對 URL 進行編碼,這與 Base64 的不同之處在於最終文本中沒有字符,人們可能會模棱兩可地感知。不包括 0(零)、O(大寫拉丁文 o)、I(大寫拉丁文 i)、l(小拉丁文 L)。還排除了 +(加號)和 /(斜杠)字符,它們在對 URL 進行編碼時會導致對地址的錯誤解釋。
Base64 提供可逆和可恢復的編碼。該服務將八位代碼表的字符轉換為在網絡中和設備之間傳輸信息期間保留的字符。