RevealTheme logo

Base64 編碼與解碼工具

將字串編碼為 Base64,或將 Base64 解碼為文字。尊重你的隱私:全部在你的瀏覽器中執行。

什麼是 Base64,為什麼它無所不在?

Base64 是一種編碼方案——而非加密——它僅使用 64 個可列印的 ASCII 字元(A-Z、a-z、0-9,以及作為填補的 +、/ 和 =)來表示任意二進位資料。它之所以存在,是因為許多傳輸協定、檔案格式和 API 都只支援文字,或對某些位元組作特殊處理:電子郵件(SMTP 是為 7 位元 ASCII 設計的)、JSON(不能包含原始位元組)、URL(含有保留字元)、HTTP 標頭(以行為導向的文字)以及 HTML 屬性,全都需要一種透過文字通道傳輸二進位資料的方式。Base64 透過將輸入位元組按每 3 個一組(24 位元)分組,並將每組重新編碼為 4 個 Base64 字元(每個 6 位元)來解決這一問題。其大小開銷恰好為 33%:每 3 個位元組變成 4 個字元。本工具可在任意方向上編碼 UTF-8 文字或 Base64 字串,全部在你的瀏覽器中完成。它能正確處理多位元組的 UTF-8 字元(表情符號、非拉丁字母),而那些直接使用 atob/btoa 的簡陋 Base64 實作則會破壞這些字元。

常見使用場景

  • 將小圖片以data: URL的形式直接嵌入CSS中(為小圖示省去一次HTTP請求)。

  • 解碼JWT或Basic Auth請求標頭的負載,查看其中的內容。

  • 將二進位檔案內容編碼後放入JSON欄位或環境變數中。

  • 透過那些無法保留任意位元組的系統(電子郵件、複製/貼上)傳輸二進位資料。

  • 在除錯時解碼經過base64編碼的API回應或webhook負載。

  • 為維運交接將二進位憑證轉換為便於複製貼上的格式。

常見問題

Base64 是加密嗎?
不是。Base64 是一種可逆的編碼:任何人都能在無需金鑰的情況下立即解碼。若需保密,請使用真正的加密(AES-256、RSA 或我們的 AES 加密工具)。把 Base64 當作安全手段是關於它的頭號錯誤。
為什麼 Base64 會增加約 33% 的大小?
編碼將輸入的 3 個位元組(24 位元)對應為 4 個字元(24 位元,因為每個 Base64 字元表示 6 位元)。這種大小開銷是固有且無法避免的。若需更小的二進位表示,請使用 Base85,或在通道支援的情況下傳送原始二進位。
什麼是 URL 安全的 Base64?
這是 RFC 4648 定義的一種變體,它用 - 代替 +、用 _ 代替 /,因此其輸出無需百分號編碼即可安全地放入 URL 路徑或檔案名稱中。JWT 使用 URL 安全的 Base64。許多 API 兩種變體都接受。
為什麼我看到結尾有「=」?
它們是填補字元。Base64 以 4 個字元為一組輸出;如果輸入不是 3 位元組的整數倍,最後一組會用「=」填補至 4 個字元。某些 Base64 變體省略填補;兩者的解碼方式相同。
它能處理表情符號和非拉丁文字嗎?
可以。本工具先將文字轉換為 UTF-8 位元組,再將位元組編碼為 Base64。這避免了 JavaScript 中 btoa() 在遇到非 Latin1 字元時失敗的經典錯誤。
我在實際應用中哪裡能見到 Base64?
無所不在:CSS 中圖片的 data: URL、Authorization: Basic 標頭、JWT 的各個區段、已簽署 URL 的簽章、S3 預簽署 URL、PKCS 憑證(PEM 格式)、電子郵件附件(MIME)、QR Code 的負載,以及現代部署平台中 .env 風格的密鑰。

相關工具