如何使用Base64 編碼解碼
- 在上方選擇「編碼」或「解碼」。
- 在輸入框輸入文字或貼上 Base64 字串,結果會即時顯示在下方。
- 編碼時可勾選「URL-safe(- _)」與「移除結尾 =」,產生可直接放進網址或 JWT 的格式。
- 按「複製結果」帶走內容;按「用結果反向轉換」可以把結果再轉回來核對。
Base64 是什麼?
Base64 是 RFC 4648 定義的編碼方式,把任意二進位資料以 64 個可列印字元(A–Z、a–z、0–9、+、/)表示,每 3 個位元組轉成 4 個字元,不足 3 個位元組時以 = 補位。它常用在電子郵件附件、Data URI、HTTP Basic 認證與各種 API 中傳遞二進位資料。Base64 是「編碼」不是「加密」,任何人都可以直接解碼,不能用來保護密碼或個人資料。編碼後的長度約為原始資料的 4/3 倍,也就是增加約 33%。
為什麼中文用 btoa 會出錯?
瀏覽器內建的 btoa() 只接受每個字元都在 0 到 255 之間的字串,遇到中文會直接拋出錯誤;有些網站為了避開錯誤而改用 escape() 等舊方法,結果與其他語言產生的 Base64 不一致。正確作法是先用 UTF-8 把文字轉成位元組,再對位元組做 Base64,本工具就是這樣處理的。
因此「中文」編碼後是 5Lit5paH,與 Python、Java、Node.js 以 UTF-8 編碼的結果相同。若解碼出現亂碼,通常是原始資料不是 UTF-8(例如舊系統使用的 Big5),或資料其實是圖片等二進位檔案。另外,Base64 字串在複製時被截斷或混入其他字元,也會造成解碼失敗。
標準 Base64 與 URL-safe Base64
標準 Base64 中的 + 與 / 在網址裡有特殊意義,= 也常被當成參數分隔符號。RFC 4648 第 5 節因此定義了 base64url:以 - 取代 +、以 _ 取代 /,並允許省略結尾的 =。JWT、許多雲端服務的 Token 與檔名安全的識別碼都使用這種格式。本工具解碼時會自動辨識兩種字母表,也接受沒有補位等號或夾雜換行的字串(例如每 76 個字元換行的 MIME 格式),貼上後不需要先手動整理。
常見問題
Base64 可以拿來加密密碼嗎?
不行。Base64 只是換一種表示方式,任何人都能立即還原。需要保護資料時應使用加密;儲存密碼則應使用 bcrypt、Argon2 等專門的雜湊演算法。
解碼時顯示「不是 UTF-8 文字」是什麼意思?
代表這段 Base64 還原後的內容不是文字,常見的是圖片、PDF 或壓縮檔。工具會顯示前 64 個位元組的十六進位內容,你可以從開頭判斷檔案類型,例如 ff d8 ff 是 JPEG,89 50 4e 47 是 PNG。
圖片要怎麼轉成 Base64?
請使用本站的「圖片轉 Base64」工具,選擇圖片後即可取得 Data URI 與純 Base64 字串,可直接用在 HTML 或 CSS 中。
我的資料會被上傳嗎?
不會。編碼與解碼都在你的瀏覽器中執行,輸入的內容不會傳送到任何伺服器。
最後更新: