星期六, 4月 06, 2019

Base64

Base64 編碼用 64 個可列印字元來表示二進位資料。二進位資料每 6-bit 為一個單元,對應到 26 = 64 可列印字元中的其中一個。每 3-byte = 24-bit 用 4 個可列印字元表示。

64 個可列印字元前 62 個依序是 A-Z、a-z、0-9,剩下兩個字元大多使用 + 和 /,但有其它變種。另外,資料長度不是 3 的倍數時,可以加以填充,多 1 需要填 ==,多 2 需要填 =,讓結果長度都是 4 的倍數。

傳送或儲存二進位資料時,有些情況有些字元有特別用途,所以需要 Base64,限縮只用可列印字元來表示,包括 MIME 的電子郵件等。

用在 URL:+ 和 / 會轉為 %XX 格式,所以改用 - 和 _。

用在正規表示式:+ 和 / 有特殊含意,所以改用 ! 和 -。

其它使用不同 64 字元集的編碼方法則不稱為 Base64,如 uuencode、BinHex。

https://en.wikipedia.org/wiki/Base64