什麼是 Base64 編碼?從真實位元組開始

理解 Base64 的用途,觀察 Hello 如何變成 SGVsbG8=,分清編碼與加密。

Base64 是用普通文本字元表示二進位制資料的方法。圖片、文件和文字最終都可以表示成位元組。當系統需要把位元組放進文本欄位時,Base64 提供一種可逆表示,接收方之後可以解碼還原。

一個簡單例子

Hello 包含五個 ASCII 位元組,編碼後是 SGVsbG8=。解碼會得到原來的五個位元組,再按文本解釋成 Hello。末尾等號屬於編碼結構,不屬於原單詞。

文本:          Hello
十六進位制位元組:  48 65 6c 6c 6f
Base64:        SGVsbG8=
還原位元組:      48 65 6c 6c 6f

可以先在編碼器裡輸入示例,再把輸出複製到解碼器,比較結果。接著嘗試中文或 emoji。文字必須先通過 UTF-8 等字元編碼轉換成位元組;Base64 本身不定義語言或字元集。

常見應用位置

JSON 中的二進位制欄位、Data URI 中的內嵌圖片,以及某些令牌的可讀部分,都可能使用 Base64。具體含義由外層格式提供。單獨一串 Base64 不會說明原檔名、MIME 型別、字元編碼或可信程度。

Data URI 會增加 data:image/png;base64, 之類字首。它描述載荷,但不屬於 Base64 字母表。某些解碼器理解這個封裝,另一些只接受逗號之後的部分。應選擇對應入口或模式,而不是隨意刪除陌生字元。

三個常見誤解

第一,Base64 不是加密,解碼不需要秘密。第二,它不會縮小檔案,普通輸出通常約大三分之一。第三,解碼結果不一定是文字,圖片位元組顯示成“亂碼”並不意味著解碼失敗。

失敗時檢查原來源、字母表和截斷情況;成功後選擇合適檢視:有效文字用文本,檢查位元組用 Hex,二進位制用檔案下載。規範和測試向量見 RFC 4648。