那一長串亂碼,其實有意義
你可能在開發網頁、處理 API 或設定電子郵件時,見過這樣的字串:
SGVsbG8sIFdvcmxkIQ==
這不是亂碼,而是「Hello, World!」經過 Base64 編碼後的結果。Base64 是一種將任意二進位資料轉換為可讀 ASCII 文字的編碼方式,廣泛應用於網路傳輸、資料儲存與系統整合。
Base64 為什麼存在?
電腦底層處理的是 0 和 1 組成的二進位資料,但許多通訊協定(如早期的電子郵件 SMTP、HTTP 表單)只設計用來傳輸純文字,無法妥善處理二進位資料(圖片、音訊、壓縮檔等)。
Base64 的出現就是為了解決這個問題:把二進位資料轉換成只包含安全 ASCII 字元的文字,讓任何文字協定都能傳輸。
Base64 是怎麼運作的?
Base64 使用 64 個字元作為編碼字母表:
- 大寫英文字母:
A–Z(26 個) - 小寫英文字母:
a–z(26 個) - 數字:
0–9(10 個) - 符號:
+、/(2 個) - 補位符號:
=(用於結尾補齊)
編碼步驟
- 將原始資料轉為二進位(每個字元 8 bits)
- 每 3 個 bytes(24 bits) 分為一組
- 將 24 bits 分成 4 組各 6 bits
- 每組 6 bits 對應 Base64 字母表中的一個字元
- 若原始資料長度不是 3 的倍數,末尾補上
=
範例:編碼「Man」
| 字元 | ASCII | 二進位 |
|---|---|---|
| M | 77 | 01001101 |
| a | 97 | 01100001 |
| n | 110 | 01101110 |
合併為 24 bits:010011 010110 000101 101110
對應 Base64:T、W、F、u → 結果為 TWFu
Base64 常見使用場景
1. 電子郵件附件(MIME)
早期電子郵件協定只支援 7-bit ASCII,無法傳送圖片或附件。MIME 標準引入 Base64,讓郵件可以安全攜帶任意檔案。如今的附件傳輸,底層仍大量使用 Base64。
2. 網頁內嵌圖片(Data URI)
在 HTML 或 CSS 中,可以直接把圖片轉為 Base64 字串嵌入,避免額外的 HTTP 請求:
<img src="data:image/png;base64,iVBORw0KGgo..." />
適用於小型圖示,但大型圖片會讓 HTML 檔案膨脹,反而降低效能。
3. API 傳遞二進位資料
REST API 通常以 JSON 格式傳輸資料,JSON 不支援直接嵌入二進位。透過 Base64,可以將圖片、PDF 等檔案轉為字串,嵌入 JSON 欄位中傳送。
4. 基本身份驗證(Basic Auth)
HTTP Basic Authentication 將帳號密碼以 username:password 格式組合後進行 Base64 編碼,加入請求標頭:
Authorization: Basic dXNlcjpwYXNzd29yZA==
注意: Base64 不是加密,只是編碼,任何人都可以解碼。Basic Auth 必須搭配 HTTPS 使用,才能保護帳密安全。
5. JWT(JSON Web Token)
JWT 廣泛用於現代 Web 身份驗證,其三個組成部分(Header、Payload、Signature)都以 Base64Url 編碼(是 Base64 的變體,用 - 取代 +,用 _ 取代 /)。
Base64 的優缺點
| 項目 | 說明 |
|---|---|
| ✅ 相容性高 | 輸出只含安全 ASCII 字元,幾乎任何系統都能傳輸 |
| ✅ 標準統一 | 各語言都有內建或成熟的 Base64 函式庫 |
| ❌ 體積增大 | 編碼後資料量約增加 33% |
| ❌ 非加密 | 任何人都能輕易解碼,不提供任何安全保護 |
| ❌ 計算開銷 | 大量資料頻繁編解碼會消耗 CPU 資源 |
常見誤解:Base64 不等於加密
這是最重要的觀念。Base64 是編碼(Encoding),不是加密(Encryption)。 它的目的是讓資料可以透過文字協定傳輸,而不是保護資料安全。
任何人只要把 Base64 字串丟入解碼器,就能還原原始內容。如果你需要保護資料,應使用 AES、RSA 等真正的加密算法;若需要驗證完整性,使用 SHA-256 等雜湊函式。
結語
Base64 是現代網路基礎設施中不起眼卻無所不在的技術。從電子郵件附件、網頁圖片嵌入,到 API 串接、身份驗證,它默默支撐著資料在不同系統間的流動。
理解 Base64,能幫助你在開發時做出更正確的技術判斷:什麼時候用、什麼時候不該用、它能解決什麼問題、又不能解決什麼問題。
👉 需要快速編碼或解碼 Base64 字串?使用本站的 Base64 編解碼工具,支援文字與檔案,即時轉換不需安裝任何軟體!