認識 Base64 編碼與解碼
Base64 編碼的作用
Base64 只用 64 個可列印字元來表示資料,包括大小寫的 A 到 Z、數字 0 到 9,以及 + 和 / 兩個符號。這個工具會把你輸入或貼上的文字改寫成這組字元,反方向也一樣:貼上一段 Base64 字串,它就會還原出原本的文字。
只要一個模式切換按鈕,就能在編碼與解碼之間來回,不必重新整理頁面。執行後結果立刻顯示,可以直接複製。
一個具體的例子
Base64 每次處理三個位元組。這三個 8 位元的位元組會重新拆成四個 6 位元的區塊,每個區塊對應字元表中的一個字元。以單字 Man 為例,它的位元組會對應到 T、W、F、u 四個字元,因此 Man 會編碼成 TWFu。
當輸入長度不是三的倍數時,會補上一個或兩個 = 字元當作填補。例如 Hello World 會編碼成 SGVsbG8gV29ybGQ=,結尾的 = 表示需要填補才能湊滿最後一組。
什麼時候用得上
Base64 是把非純文字的資料,透過只接受文字的管道傳遞時的常見做法。你可以解碼 JSON Web Token(JWT)的其中一段來查看它的 claims,讀取 HTTP Basic 驗證標頭裡的帳密,或是把從 Cookie、設定檔、API 回應取出的值拆開來看看實際內容。
反過來,編碼能讓你把小圖片以 data URI 的形式直接嵌進 HTML 或 CSS,或是把近乎二進位的內容貼到只接受純文字的地方,而不會在途中被弄壞。
注意事項與特殊情況
文字在編碼前會以 UTF-8 處理,所以帶重音的字母、CJK 文字和表情符號都能在來回轉換後保持原樣,不會變成亂碼。解碼時會先檢查輸入:若字串裡混有 Base64 字元表以外的字元,或填補不正確,工具會以明確的錯誤訊息擋下,而不是回傳亂七八糟的結果。
這個工具採用含 + 和 / 的標準字元表;把兩者換成 - 和 _ 的網址安全版本,是相近但不同的另一種編碼。也要記得 Base64 是編碼而非加密,它本身不會隱藏任何東西,任何人都能把結果還原成原文。