alltools.one
Encoding
2026-02-18
8 min
alltools.one Team
base64encodingweb-developmentapidata

Base64 編碼詳解:何時使用及如何運作

你一定在很多地方見過 Base64 字串 — 電子郵件附件、data URI、API 令牌,甚至 JWT 酬載中。那些由字母、數字以及偶爾出現的 +/ 組成的長字串看起來像是加密資料,但 Base64 根本不是加密。它是一種編碼方案,理解這個區別非常重要。

什麼是 Base64 編碼?

Base64 使用 64 個可列印的 ASCII 字元將二進位資料轉換為文字表示:A-Z、a-z、0-9、+/(以 = 作為填充字元)。這使得透過純文字系統傳輸二進位資料成為可能。

結果總是比原始資料大 33% — 這是換取文字安全性的代價。

使用我們的 Base64 編碼器親自嘗試 — 貼上任何文字即可看到即時轉換。所有編碼過程都在你的瀏覽器中進行,因此你的資料保持隱私。

Base64 如何運作

編碼過程將輸入分割為 6 位元組(因為 2^6 = 64),並將每個組映射到 64 個字元之一。當輸入長度不能被 3 整除時,會出現 = 填充字元。

何時使用 Base64

在 HTML/CSS 中嵌入圖片

Data URI 可以消除小型圖片的 HTTP 請求。非常適合 10KB 以下的圖示。若需處理較大的圖片,請先使用我們的圖片最佳化工具進行最佳化。

API 資料傳輸

當 API 需要在 JSON 酬載中傳送二進位資料時,Base64 是標準編碼方式。

JWT 令牌

JSON Web Token 使用 Base64URL 編碼。使用我們的 JWT 編碼器/解碼器解碼任何 JWT。

Basic 身份驗證

HTTP Basic Auth 將憑證編碼為 Base64。重要提醒:這是編碼,不是加密。務必使用 HTTPS。

常見的 Base64 錯誤

  1. 將其視為加密 — Base64 提供零安全性。使用我們的雜湊產生器來進行實際的雜湊運算
  2. 編碼大型檔案 — 33% 的體積增長在大規模應用時影響顯著
  3. 重複編碼 — 在編碼之前先確認資料是否已經被編碼過
  4. 忽略填充字元 — 某些系統會去除 = 填充字元

不同語言中的 Base64

JavaScript: btoa('Hello') / atob('SGVsbG8=')

Python: base64.b64encode(b'Hello') / base64.b64decode('SGVsbG8=')

命令列: echo -n 'Hello' | base64

常見問題

Base64 編碼和加密一樣嗎?

不一樣。Base64 任何人都可以自由還原。若需要安全性,請使用正規的加密方式。

為什麼 Base64 會讓資料變大?

三個位元組變成四個字元(每個 6 位元而非 8 位元),導致 33% 的體積增長。

相關資源

Published on 2026-02-18
Base64 Encoding Explained: When and How to Use It | alltools.one