JWT 解碼

JWT 解碼

拆分 JWT 三段並解碼 Header 與 Payload(不驗簽)

瀏覽器本地計算

粘貼三段式 Token 後點擊解碼,分別查看頭部和載荷;本頁不驗證簽名,不能據此判斷登錄憑據有效。

–

範例

輸入

eyJhbGciOiJub25lIn0.eyJzdWIiOiJkZW1vIn0.

示例結果

頭部:{"alg":"none"}
載荷:{"sub":"demo"}

這是無簽名的教學示例,不可用於身份驗證。

技術細節與邊界

三段式 JWS 使用點號連接 Base64URL 編碼的 Header、Payload 與簽名。exp 等 NumericDate 聲明以秒為單位。解碼成功不等於簽名有效,瀏覽器時鐘判斷也不能替代服務端對簽名、算法、iss、aud、nbf、exp 的驗證;五段式 JWE 不受支持。

關於此工具

在瀏覽器中解碼三段式 JWT 的 Header 與 Payload,並將 JSON 整理為可讀格式。輔助檢查 alg、sub、exp 等字段;只展示聲明,不驗證簽名,也不判斷訪問權限。

適用場景

  • 排查後端認證問題,看客戶端拿到的 token 裡有什麼。
  • 確認 token 的 exp 是否過期。
  • 在文件裡貼一份範例 JWT 的解碼結果。

操作步驟

  1. 把 JWT 字串(aaa.bbb.ccc)貼進輸入框。
  2. 點擊“解碼”,頭部與載荷分別顯示;有效 JSON 會自動格式化。

注意事項

本頁未實現簽名驗證。生產系統需根據約定算法使用可信的驗證密鑰,並檢查完整聲明。

常見問題

JWT 在線解碼成功是否代表簽名有效?
JWT解碼成功只說明內容可解析,不代表簽名有效。常見JWS包含3段,本工具不支持5段JWE;實際認證還應在服務端校驗簽名、算法、簽發方和受眾,不能把頁面顯示的載荷當成可信身份。
JWT exp過期時間是秒還是毫秒?
JWT的exp等時間聲明使用秒,不是毫秒。將秒值乘以1000即可得到JavaScript常用的毫秒時間;近期值常見10位與13位之別,最終有效性仍應依據服務端驗證和允許的時鐘偏差。
JWT 三段式和五段式為甚麼不能同樣解碼?
三段式JWS和五段式JWE結構不同,本工具只解析前者的頭部與載荷。JWS有3段,JWE有5段且載荷涉及加密;遇到五段輸入應使用支持對應加密算法和密鑰的工具,不能刪除分段強行解析。

相關工具

JWT 解碼 · 拆分 JWT 三段並解碼 Header 與 Payload(不驗簽)
JWT 解碼 — 工具示意圖 · dayeku.com