RunToolz iconRunToolz
Welcome to RunToolz!
Base64編碼開發工具

Base64 是什麼,為什麼它一直出現

程式碼裡那串奇怪的文字不是亂碼。了解 Base64 編碼的工作原理、常見應用場景,以及如何在 API 除錯和資料傳輸中正確使用它。

RunToolz Team2026年1月5日4 min read

你在除錯 API。在回應中的某個地方,你看到這個:

SGVsbG8gV29ybGQh

或者你在查看電子郵件的原始碼,發現看起來像亂敲鍵盤的大段文字。或者你的 CSS 有一個以 data:image/png;base64, 開頭的背景圖片,後面跟著一堆字符。

那就是 Base64。一旦你開始留意,它無處不在。

Base64 到底是什麼

二進位資料——圖片、檔案、任何非純文字的東西——與專為文字設計的系統不相容。電子郵件是為 ASCII 字符建立的。URL 有受限的字符集。JSON 無法處理原始二進位。

Base64 將二進位資料轉換成由 64 個「安全」字符組成的字串:A-Z、a-z、0-9、+ 和 /。任何二進位檔案都會變成文字字串,不會在通過純文字系統時損壞。

它不是加密。不是壓縮。只是編碼——用不同的方式表示相同的資料。

想親自試試嗎?編碼/解碼 Base64

你會在哪裡看到它

電子郵件附件。 當你通過電子郵件發送 PDF 時,它會被 Base64 編碼,以文字形式傳輸,然後在另一端解碼。

Data URI。 那個 data:image/png;base64,... 語法直接在 HTML 或 CSS 中嵌入圖片。不需要單獨的檔案請求。

API 認證。 Basic auth 將 username:password 作為 Base64 字串發送。(這就是為什麼透過 HTTP 的 basic auth 不安全——Base64 不是加密。)

JWT。 JSON Web Token 是三個 Base64 編碼的 JSON 物件,用點連接起來。

JSON 中的二進位資料。 JSON 無法包含原始位元組,所以二進位會先進行 Base64 編碼。

編碼 vs 加密

人們經常混淆這兩者。

Base64 編碼: 任何人都可以逆轉。不需要金鑰。不安全。只是重新格式化。

加密: 只有使用正確的金鑰才能逆轉。真正安全。

如果你可以不用密碼就解碼某些東西,那就不是加密的。Base64 只會對不知道什麼是 Base64 的人「隱藏」資料——而真正想讀它的人都知道。

不要以 Base64 儲存密碼。不要假設 API 中的 Base64 資料是私密的。它只是看起來很奇怪的文字。

大小問題

Base64 會使資料大小增加約 33%。一個 100KB 的圖片變成 Base64 編碼後會變成約 133KB。

這對 data URI 很重要。在 CSS 中以 Base64 嵌入大圖片會使檔案變大,並且無法單獨快取。適合小圖示。不適合主視覺圖片。

實際用途

除錯。 在 API 回應中看到 Base64?解碼它看看裡面是什麼。

嵌入小圖片。 1-2KB 以下的圖示通常值得以 data URI 嵌入,以節省 HTTP 請求。

透過文字通道傳遞二進位。 需要在 JSON 中包含檔案內容?先 Base64 編碼。

讀取 JWT。 解碼每個部分以查看標頭、有效載荷,並了解 token 包含哪些聲明。

想親自試試嗎?圖片轉 Base64

Base64 並不複雜。它只是一種將任何資料轉換為文字字串的方法。認識它,在需要時解碼,並知道它不提供任何安全性——只是相容性。