← 返回工具箱

🔤 Base64 編碼/解碼

等待輸入…

使用步驟

  1. 先選模式:「文字 ↔ Base64」處理純文字;「檔案 → Base64」處理圖片、字型、壓縮檔等任何檔案。
  2. 文字模式:貼上內容、選「編碼」或「解碼」,結果即時產生;解碼遇到非法 Base64 或非 UTF-8 內容都會明確提示,不會丟出看不懂的錯誤。
  3. 檔案模式:選擇檔案(任何類型、上限 5MB),需要嵌進網頁就勾「輸出 data URL」,輸出可直接貼進 HTML 或 CSS。
  4. 按「複製結果」把內容帶走;「清空」可立刻清除輸入與輸出。
  5. 所有轉換都在瀏覽器本機完成,文字與檔案都不會上傳到任何伺服器。

常見問題

Base64 是加密嗎? 不是。Base64 只是「編碼」:把任意位元組轉成只用 A–Z、a–z、0–9、+、/ 這 64 個安全字元表示,方便在只吃文字的管道(HTML、JSON、email)夾帶資料。它沒有金鑰,任何人拿到都能立刻解開,絕不能當成加密來保護密碼或個資。需要保密請用真正的加密(如 AES)或雜湊(如密碼專用的 bcrypt)。

為什麼檔案轉成 Base64 會變大約 33%? Base64 每 3 個位元組(24 bit)用 4 個字元表示,每個字元只攜帶 6 bit,體積固定膨脹 4/3 ≈ +33%;若勾選 data URL 再加上前綴(如 data:image/png;base64,)會再多一點。這是編碼機制的必然代價,不是工具做得不好。

為什麼中文用 btoa() 直接編碼會出錯? 網頁內建的 btoa() 一次只接受一個位元組(0–255)的字元,而中文一個字在 UTF-8 下是 3 個位元組,直接丟進去會噴 InvalidCharacterError 或產生錯誤結果。正確做法是先用 TextEncoder 把文字轉成 UTF-8 位元組、再對位元組做 Base64——本工具就是這樣處理的,所以「工具」或「🛠️」這類內容都能正確編碼後再解回來。

想延伸閱讀單位、IP、網域與資安觀念,請見全部文章總覽。