如何使用此計算機
在文字區域貼上要編碼的文字或 Base64 字串,選擇編碼或解碼,結果即時顯示。
公式與原理
Base64 將每 3 個位元組(24 位元)轉為 4 個可列印字元。輸出長度 = ceil(輸入長度/3) × 4。
計算範例
文字「Hello」→ Base64「SGVsbG8=」。等號為填充符號,確保輸出為 4 的倍數。
專家建議
Base64 不是加密,只是編碼。常用於電子郵件附件、Data URL 和 JWT Token。編碼後大小增加約 33%。
什麼時候該用 Base64
Base64 的用途是「把二進位資料塞進只能放文字的地方」。常見情境有三種:電子郵件附件(SMTP 早期只支援 7-bit 文字)、網頁的 Data URL(把小圖示直接內嵌進 CSS 或 HTML,省一次網路請求)、以及 JWT Token 和 API 的 Basic 認證標頭。
反過來說,大檔案不適合用 Base64。編碼後體積會增加約 33%,把一張 500KB 的圖轉成 Data URL 會變成約 667KB,而且無法被瀏覽器單獨快取——每次載入頁面都要重新傳一次。實務上只有幾 KB 的小圖示才值得內嵌。
URL 安全變體:為什麼有時候要換字元
標準 Base64 使用 +、/ 和 =,但這三個字元在網址裡都有特殊意義(+ 會被解讀成空格、/ 是路徑分隔)。所以放進 URL 或檔名時要改用 URL-safe Base64:把 + 換成 -、/ 換成 _,並省略結尾的 = 填充。
JWT Token 用的就是這個變體,這也是為什麼你看到的 JWT 字串裡只有英數字、- 和 _。解碼前要先換回來,否則會失敗。
中文編碼後為什麼變那麼長
Base64 處理的是位元組,不是字元。英文字母在 UTF-8 裡佔 1 個位元組,中文字則佔 3 個位元組——所以同樣「5 個字」,中文編出來的長度大約是英文的 3 倍。
計算方式是:先算原文的 UTF-8 位元組數,再套 ceil(位元組數 ÷ 3) × 4。例如「你好」是 6 個位元組,編碼後是 8 個字元。這也提醒一件事:處理中文時務必確認編碼是 UTF-8,用錯編碼解出來就會變亂碼。