decode | inspect | copy

> base64 解碼器 | paste | decode <

// 貼上任意 Base64 字串(標準、URL 安全或無填補),即時解碼為 UTF-8 文字。全部於瀏覽器內執行。

0 字元
[AUTO]

格式自動偵測

自動偵測 RFC 4648 標準 Base64、URL 安全 Base64 (-_) 與缺失填補,無需任何設定 — 貼上即用。

[LOCAL]

100% 瀏覽器內

Base64 字串不會離開您的裝置。無伺服器上傳、無記錄、無遙測。可安全處理權杖、憑證、私有資料。

[FAST]

即時解碼

輸入即解碼。支援 UTF-8 多位元組文字、emoji、JSON、XML、二進位 Base64。輸入大小無限制。

// BASE64 解碼原理

Base64 解碼演算法:

Base64 將 3 位元組的二進位資料編碼為 4 個 ASCII 字元,取自 64 字元字母表(A-Z、a-z、0-9、+、/)。解碼為其逆過程:每個字元對應 6 位元數值,4 個 6 位元數值組合回 3 個 8 位元位元組。填補字元 = 用於使編碼長度為 4 的倍數。本解碼器接受有填補、無填補、URL 安全三種輸入,並以 UTF-8 文字回傳結果。

解碼示例:

輸入  : SGVsbG8sIEJhc2U2NCE=
位元  : 01001000 01100101 01101100 01101100
         01101111 00101100 00100000 01000010
         01100001 01110011 01100101 00110110
         00110100 00100001
輸出  : Hello, Base64!

常見解碼場景:

  • >解碼 JWT 的 header 與 payload(簽章前)
  • >讀取 Base64 編碼的電郵附件(MIME)
  • >檢查 Base64 URL 參數與 OAuth state 權杖
  • >從 Data URI (data:text/plain;base64,...) 擷取文字
  • >偵錯將二進位包裝為 Base64 的 API 回應

// 常見問題

如何線上解碼 Base64 字串?

將 Base64 字串貼到上方 輸入 區域 — 自動解碼(預設開啟)會在您輸入時立即執行,結果顯示於 輸出 區域。亦可點擊 [DECODE] 按鈕或按 Ctrl/Cmd + Enter。所有處理於本地瀏覽器完成,不會傳送至伺服器,貼上 JWT、OAuth state 或機密資料都安全。

本解碼器支援哪些 Base64 變體?

全部支援,自動偵測:
標準 Base64 (RFC 4648) — 字母表 A-Z a-z 0-9 + /,以 = 填補。
URL 安全 Base64 (RFC 4648 §5) — 以 -_ 取代 +/。JWT、OAuth、Google API、AWS S3 預簽章 URL 都使用此變體。
無填補 Base64 — 省略末尾 =。JWT 常見,解碼器需自動補齊填補。
容許空白 — 解碼前會移除 Base64 字串中的換行、Tab 和空格(處理電郵正文的 76 欄折行)。

偵測到的格式會以徽章顯示於按鈕下方。

為什麼我的 Base64 解碼後是亂碼或錯誤?

解碼失敗多半由以下 5 種原因造成:

1. 輸入根本不是 Base64。 許多人將 Base64 與十六進位、Base32、URL 編碼混淆。Base64 只使用 A-Z a-z 0-9 + / =(URL 安全為 - _)。若含 %20 則是百分號編碼;若全是 0-9 a-f 則很可能是十六進位。

2. 遭截斷。 Base64 在補齊填補後長度須為 4 的倍數。複製貼上時漏掉末尾 == 會導致 "長度無效" 錯誤。本解碼器會自動補齊,但嚴重截斷仍會失敗。

3. URL 安全與標準混用。+/-_ 全部出現,通常是字串損壞。

4. 雙重編碼。 某些資料被 Base64 編碼兩次,解碼一次得到亂碼本身仍是 Base64,再解碼一次才得到最終文字。

5. 原始位元組不是 UTF-8。 Base64 解碼出的是位元組。若原始內容是加密資料或 PNG 等原始二進位,文字顯示必然是亂碼 — 此為正常,需改用 Base64 轉檔案工具。

如何用此 Base64 解碼器解碼 JWT?

JWT 由三部分組成,以點分隔:header.payload.signature。三段皆為 無填補的 URL 安全 Base64。檢查 payload 步驟:

1. 複製中間一段(兩點之間)。
2. 貼上至上方解碼器。自動解碼會處理 URL 安全字母表並補齊填補。
3. 獲得包含 isssubexpiat 等宣告的 JSON payload。

第三段簽章為 HMAC 或 RSA 的二進位輸出,以文字顯示必然為亂碼 — 此為正常。需要完整 JWT 檢查與簽章驗證時,請使用專用的 JWT 解碼器

安全提醒:解碼 JWT 並不等於驗證 JWT。任何人都能讀取 JWT 的 payload — 此為設計使然。簽章證明權杖由發行方簽發,需使用發行方的公鑰或共享密鑰另行驗證。

如何在命令列(bash、PowerShell、Python)解碼 Base64?

主流平台皆內建 Base64 解碼器:

macOS / Linux (bash/zsh):
echo 'SGVsbG8=' | base64 -d — 輸出 Hello。macOS 若 -d 不可用改用 -D。URL 安全輸入先透過 tr '_-' '/+' 管線轉換。

Windows PowerShell:
[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('SGVsbG8='))

Python:
import base64
base64.b64decode('SGVsbG8=').decode('utf-8') # Hello
base64.urlsafe_b64decode(s + '===').decode() # URL 安全 + 自動補填補


Node.js:
Buffer.from('SGVsbG8=', 'base64').toString('utf-8')

瀏覽器 DevTools:
atob('SGVsbG8=') — 任意主控台皆可。UTF-8 字串須包裹 new TextDecoder().decode(Uint8Array.from(atob(s), c => c.charCodeAt(0)))

PHP: base64_decode('SGVsbG8=')
Ruby: Base64.decode64('SGVsbG8=')
Go: base64.StdEncoding.DecodeString("SGVsbG8=")

此 Base64 解碼器解碼敏感權杖和憑證安全嗎?

是 — 本解碼器比伺服器端工具更安全,因為資料不會離開瀏覽器。 解碼全部於裝置本地的 JavaScript 完成,使用原生 atob()TextDecoder API。無網路請求、無上傳、無記錄、無輸入內容埋點。可開啟 DevTools 網路面板驗證 — 會看到零請求。

不過 Base64 不是加密,只是編碼。任何人拿到 Base64 字串都能解碼。雖然本工具安全,仍需:
• 不分享未過期的 JWT 截圖。
• 洩漏至日誌、截圖、聊天的憑證需輪換。
• OAuth state、CSRF token、Session ID 在失效前都按機密處理。

對 Base64 字串本身敏感的企業或法遵環境,可將此頁離線儲存(Cmd/Ctrl + S),載入一次後即可完全離網執行。

如何解碼 'data:image/png;base64,iVBORw0KGgo...' 這樣的 Base64 Data URI?

Data URI 語法為 data:[<mediatype>][;base64],<data>。只解碼 payload 部分:

1. 找到逗號。逗號前是中繼資料(data:image/png;base64),逗號後是 Base64 編碼的檔案。
2. 僅複製逗號後的部分貼至本解碼器。
3. 二進位內容(PNG、JPG、PDF)解碼結果為原始位元組,文字顯示必然為亂碼 — 此為正常。
4. 檢視 Data URI 圖片:將完整data:... URI 貼至瀏覽器網址列 — 瀏覽器會直接解碼並繪製。
5. 儲存為圖片檔:使用 Base64 轉圖片 工具,處理完整 Data URI 並下載 PNG/JPG/WebP。

Data URI 常見於:CSS background-image、內嵌 SVG 圖示、電郵簽名圖片、JSON API 回應中嵌入的 PDF、Electron/VS Code 擴充功能圖示包。

Base64 編碼與解碼有何不同?

編碼將任意二進位或文字資料轉換為僅含可印字元的 ASCII 字串 — 可於僅文字通道(電郵、URL、JSON)中安全傳輸。解碼為其逆過程:將 ASCII Base64 字串還原為原始位元組。

關鍵特性:
往返無損: decode(encode(x)) === x,不遺失任何資料。
非加密: 無任何保密性,任何人都能解碼。
體積膨脹: 輸出約比輸入大 33%(3 位元組 → 4 位元組)。
應用場景: JWT、MIME 電郵附件、HTTP Basic 認證標頭、OAuth code、S3 預簽章 URL、HTML/CSS 內嵌圖片。

本頁面專注於解碼。反向轉換(文字/檔案 → Base64)請使用 Base64 編碼器,圖片轉換請用 圖片轉 Base64

可以解碼超大 Base64 字串或檔案嗎?

可以,僅受瀏覽器記憶體限制。輸入長度無上限,我們已在現代筆電上測試 50 MB Base64 字串(解碼後約 37 MB)。效能表現:

< 100 KB: 瞬時完成,無 UI 延遲。
1 – 10 MB: 耗時約 50–500 ms。
10 – 100 MB: 因 atob 為同步,瀏覽器可能短暫凍結 2–10 秒。請先關閉 auto-decode,再手動點擊 [DECODE]。
> 100 MB: 會觸及瀏覽器記憶體上限。GB 級別建議使用命令列(base64 -d)。

若解碼結果為二進位檔(PNG、PDF、ZIP),文字輸出區會顯示亂碼。將位元組存成檔案請用 Base64 轉圖片(處理圖片),或命令列 echo '<base64>' | base64 -d > output.bin

此 Base64 解碼器可離線使用嗎?

可以。頁面載入一次後,所有解碼皆於客戶端 JavaScript 完成,無需網路。要完全離線:

1. 儲存頁面: 按 Ctrl+S(Windows/Linux)或 Cmd+S(macOS),選擇 "網頁,完整"。解碼器可從本地 HTML 執行。
2. 安裝為 PWA(支援的瀏覽器): 選擇 "安裝此應用程式" — 獲得可離線存取的啟動器。
3. DevTools: 原生 atob() 於任意瀏覽器主控台皆可用,快速解碼 atob('SGVsbG8=')

適用於:氣隙安全研究、滲透測試實驗室、嚴格資料出境管控的企業環境、沒有網路的班機和列車。

// RELATED TOOLS

// OTHER LANGUAGES