Base64 編碼解碼使用方法
- 在一般文字欄輸入內容,右邊的 Base64 欄會立即顯示編碼結果。
- 反過來,在 Base64 欄貼上編碼字串,左邊就會顯示解碼後的原始文字。
- 圖片或 PDF 可拖曳到下方的檔案區,工具會產生 data URI 與 Base64 字串。
- 如果 Base64 內容是圖片或檔案,按下將 Base64 存成檔案即可還原成原本的檔案。
什麼是 Base64 編碼?
Base64 是把照片、檔案等二進位資料或中文等文字,改用英文大小寫字母、數字、+、/ 共 64 個字元來表示的方式。常見用途包括電子郵件附件、直接把圖片寫進 HTML/CSS 的 data URI、用 JSON 傳送檔案的 API,以及登入驗證用的 HTTP 標頭等。
由於每 3 個位元組會轉成 4 個字元,結果會比原始資料大約多出 33%。為了讓長度湊成 4 的倍數,結尾會加上 0~2 個 = 符號。
Base64 不是加密。任何人都能輕易解碼,因此不能拿來保護密碼或個人資料。
為什麼中文 Base64 編碼結果在不同網站會不一樣?
Base64 轉換的是位元組,而不是文字本身。同樣是「你好」,用 UTF-8 是 6 個位元組(5L2g5aW9),用台灣舊系統常見的 Big5 則是 4 個位元組(p0Gmbg==),結果自然不同。簡體中文的 GBK/GB2312 編碼又會得到另一種結果。
網頁與大多數 API 都使用 UTF-8,所以本工具也以 UTF-8 轉換。如果解碼後出現亂碼,很可能原始資料是 Big5、GBK 等其他編碼,或者根本不是文字而是檔案。
URL-safe Base64 與 data URI
一般 Base64 裡的 +、/、= 在網址(URL)中有特殊意義,直接使用可能出問題。URL-safe Base64 會把 + 換成 -、/ 換成 _,並省略結尾的 =。JWT 權杖就是最典型的例子。
data URI 是像 data:image/png;base64,iVBOR... 這樣,把檔案格式和 Base64 寫在一起,不需要另外的檔案就能把圖片直接嵌入 HTML 或 CSS。小圖示用這種方式可以減少請求次數,但大圖片容量會增加約 33%,還是以一般檔案存放較好。
Base64 編碼後的容量怎麼算?
Base64 結果的長度為 4 × ⌈原始位元組 ÷ 3⌉ 個字元。因為 3 個位元組會變成 4 個字元,大小約為原本的 4/3 倍。
- 原始 3 位元組 → 4 個字元
- 原始 100KB → 約 133KB
- 原始 1MB 圖片 → 約 1.33MB
另外要注意,一個中文字在 UTF-8 中通常佔 3 個位元組,所以中文文字編碼後的 Base64 長度大約是字數的 4 倍。
JWT 權杖以點(.)分成三段,中間那段是用 URL-safe Base64 編碼的 JSON。只要貼上中間那段就能讀出內容,但本工具不會驗證簽章,因此無法判斷權杖是否可信。