← 全部工具

Base64 編碼/解碼

一句話說明: Base64 把任何資料改寫成只有 64 種安全字元的文字,方便放進只能傳文字的地方;它是「編碼」,任何人都能還原,不是加密。

隱私:全部在你的瀏覽器裡計算,不會送到伺服器。

查核日期 2026-10-21 · 回報錯誤

互動工具需要 JavaScript。下方的公式、範例與說明不需要 JavaScript 也能閱讀。

Base64 是什麼

Base64 是一種編碼方式。編碼的意思是:換一種寫法表示同一份資料,不需要密碼就能換回來。

它每次取 3 個位元組(24 個位元),切成 4 組 6 位元。每組對到一個字元,字元表是 A–Z、a–z、0–9、+、/,共 64 個。最後不足 3 個位元組時,用 = 補齊長度。規則定義在 RFC 4648 第 4 節。

所以 Base64 的結果大約比原始資料大三分之一(每 3 個位元組變 4 個字元)。

Base64 不能用來保護資料。 它沒有金鑰,貼到任何解碼工具都能立刻還原。要保護資料,請用真正的加密(例如 AES-GCM),並妥善保管金鑰。

使用情境

  1. 看懂設定檔與 API 回應裡的一串亂碼。 例如 Kubernetes Secret 的值、Email 原始碼裡的附件、某些 API 回傳的 data 欄位,常是 Base64。解碼後才看得到內容。
  2. 把小圖片或檔案放進文字欄位。 例如 CSS 的 data: 網址、JSON 裡要夾帶一小段二進位資料。
  3. 檢查 JWT(JSON Web Token)的內容。 JWT 的前兩段是 URL-safe Base64。解碼後可以看到演算法、到期時間等欄位。注意:解碼看得到內容,不代表驗證了簽章。

範例

輸入(文字)輸出(Base64)
ManTWFu
aYQ==
Hello, 世界SGVsbG8sIOS4lueVjA==
台灣5Y+w54Gj

反向:把 5LiW55WM 解碼,得到 世界。

URL-safe 格式把 + 換成 -、/ 換成 _(RFC 4648 第 5 節)。例如位元組 FB FF FE:標準格式是 +//+,URL-safe 格式是 -__-。

中文字先轉成 UTF-8 位元組再編碼。一個常用中文字在 UTF-8 佔 3 個位元組,所以「台灣」兩個字剛好變成 8 個 Base64 字元。

常見錯誤

  1. 以為 Base64 是加密。 把密碼或個資 Base64 後放進網址、程式碼或公開 repo,等於明文公開。任何人都能解回來。
  2. 中文解碼變亂碼。 原因通常是編碼和解碼用了不同的字元編碼。例如「台灣」用 UTF-8 編碼,卻用 Latin-1 解碼,會看到 å°ç£ 這種字。本工具一律用 UTF-8。在 JavaScript 裡直接對中文用 btoa() 會出錯,因為它只接受每個字元 1 個位元組的字串。
  3. 混用標準格式與 URL-safe 格式。 字串裡有 - 或 _,就是 URL-safe 格式。用標準解碼器處理會失敗。本工具會自動辨識兩種格式。
  4. 少了結尾的 `=`。 有些系統(例如 JWT)會省略補位的 =。多數解碼器能處理,但部分嚴格的實作會報錯。長度不是 4 的倍數時,可以在結尾補 = 再試。
  5. 複製時多了換行或空白。 Email 等格式會每 76 個字元換行。換行不是 Base64 字元,貼進嚴格的解碼器前要先移除。

常見問題(FAQ)

Base64 是加密嗎?可以拿來保護密碼嗎?
不是加密,也不能保護密碼。Base64 沒有金鑰,任何人都能解碼。保護資料請用加密;儲存密碼請用 bcrypt 或 Argon2 這類密碼雜湊。
為什麼 Base64 結尾有一個或兩個 =?
= 是補位字元。Base64 每 3 個位元組一組,最後一組不滿 3 個時,用 = 補到 4 個字元。剩 1 個位元組補兩個 =,剩 2 個補一個 =。
標準 Base64 和 URL-safe Base64 差在哪?
差兩個字元。標準格式用 + 和 /,這兩個字元在網址裡有特殊意義。URL-safe 格式改用 - 和 _,可以直接放進網址與檔名。JWT 用的就是 URL-safe 格式。
中文可以用 Base64 嗎?
可以。本工具先把文字轉成 UTF-8 位元組,再做 Base64。解碼時也用 UTF-8 還原。對方若用 Big5 等其他編碼,解出來的中文會變亂碼。
我貼上的內容會被上傳嗎?
不會。編碼與解碼都在你的瀏覽器裡計算,資料不會送到伺服器。即使如此,仍建議不要把正式環境的密碼或金鑰貼到任何網頁工具。

來源(查核日期 2026-10-21)