開發者工具
JSON Web Token 線上除錯器

線上JWT解碼

免費線上JWT解碼與JWT編碼工具(JWT Decoder / JWT Encoder),可解析 JSON Web Token 的 Header、Payload 與 Signature,支援 HS256 簽章驗證與產生 JWT,資料只在瀏覽器處理。

JWT Token 輸入

在下方貼上 JWT,立即解碼、檢查與驗證。

等待輸入 JSON Web Token。

解碼 Header

JSON
貼上 JWT 後會在這裡顯示解析內容。

解碼 Payload

Claims
貼上 JWT 後會在這裡顯示解析內容。

JWT 簽章驗證

選用
解碼後會在這裡顯示 Signature。

輸入簽發 JWT 時使用的 secret。HS256 驗證會在你的瀏覽器本機執行。

JWT

如何使用線上JWT解碼?

  1. 貼上完整 JWT token。
  2. 按下「解碼 JWT」解析 Header、Payload 與 Signature。
  3. 需要確認簽章時輸入 secret,再使用「驗證簽章」。
JSON

什麼是 JSON Web Token?

JWT 是常用於登入、API 驗證與服務間授權的 token 格式,由 Header、Payload 與 Signature 三段組成。

Payload 內容可以被解碼閱讀,敏感資料不應放入 JWT claims。

HS

JWT Verify 與安全性

本頁支援 HS256 簽章驗證與產生,方便檢查測試環境 token 是否由相同 secret 建立。

所有 JWT 解碼、編碼與簽章驗證都在瀏覽器本機完成。

JWT SEO KNOWLEDGE BASE

線上JWT解碼完整指南:JSON Web Token 是什麼、如何驗證與如何安全使用

如果你正在搜尋「JWT Decoder」、「JWT 解碼器」、「JSON Web Token 解析」、「JWT Verify」或「JWT Encoder」,通常代表你手上已經有一段 token,需要快速看懂它的 Header、Payload、過期時間、簽章演算法與 claims。這個頁面不只提供線上 JWT 解碼工具,也整理開發者最常查詢的 JWT 基礎知識。

JWT 是什麼?

JWT 是 JSON Web Token 的縮寫,是一種用 JSON 表示資訊、再轉成精簡字串的 token 格式。它常被用在前後端分離網站、App API、會員登入、單一登入 SSO、微服務授權與服務間資料交換。

JWT 解碼不需要密碼,因為 Header 和 Payload 只是 Base64URL 編碼,不是加密。任何拿到 token 的人都可以用 JWT Decoder 看見 Payload 內容,因此 claims 不能放密碼、API key 或敏感個資。

JWT 什麼時候使用?

最常見的使用情境是授權。使用者登入成功後,授權伺服器簽發 JWT,前端或 App 在之後呼叫 API 時,把 token 放在 HTTP Authorization header,例如 Authorization: Bearer <token>

JWT 也常用於資訊交換。當兩個系統需要交換可驗證的資料時,簽章可以讓接收端確認資料沒有在傳輸過程中被更改。大型系統常用 JWKS 端點公開公鑰,讓不同服務能驗證 token 來源。

JWT 三段結構:Header、Payload、Signature

標準 JWT 通常由三段以句點分隔的 Base64URL 字串組成:Header.Payload.Signature。第一段 Header 描述 token 類型與簽章演算法,第二段 Payload 放 claims,第三段 Signature 用來驗證完整性。

常見 registered claims 包含 isssubaudexpnbfiatjti。良好的 API 驗證通常會至少檢查 expissaud

JWT 如何在登入與 API 中運作?

典型流程是:使用者登入,授權伺服器驗證帳密或第三方登入結果,接著簽發 access token;前端把 access token 附在 API 請求中;後端 API 驗證 token 後回傳受保護的資料。

JWT 不是萬能的 session 替代品。token 一旦簽發,在過期前通常不需要查資料庫就能被驗證,但撤銷 token、權限即時變更與登出處理仍需要設計。

JWT Validation 與 JWT Verification 有什麼不同?

JWT validation 通常指檢查 token 是否符合預期規則,例如是否有三段、是否能解碼、JSON 是否合法、是否過期、issuer 是否正確、audience 是否符合目前 API。

JWT verification 則會用指定演算法與金鑰重新計算簽章,再和 token 第三段 Signature 比對。看得懂 Payload 不代表 token 可信;正式 API 必須做驗章與 claims 驗證。

JWT Decode 與 JWT Encode 差在哪裡?

JWT Decode 是把 token 第一段和第二段轉回 JSON,讓你閱讀 Header 與 Payload。JWT Encode 則是反向流程:準備 Header JSON 和 Payload JSON,產生 Signature,最後組合成完整 token。

如果你只是想看 Payload 內容,不需要 secret;如果你要確認 token 是否真的由你的系統簽發,就必須使用正確 secret 或公鑰驗證 Signature。目前本頁支援 HS256。

JWT Claims 對照:解碼後應該看哪些欄位?

使用線上JWT解碼時,你應該同時檢查 token 是誰簽發、發給哪個系統、何時生效、何時過期,以及權限範圍是否符合 API 需求。下表整理常見 JWT claims。

Claim中文意思除錯時要檢查什麼
issIssuer,簽發者是否為你的授權伺服器或可信任 identity provider。
subSubject,使用者或主體 ID是否對應正確使用者、會員、服務帳號或裝置。
audAudience,token 受眾是否發給目前 API;audience 錯誤常造成 401。
expExpiration time,過期時間是否已過期;注意 Unix timestamp 與時區顯示差異。
nbfNot before,生效時間是否尚未到可使用時間;伺服器時間偏差也會影響。
iatIssued at,簽發時間是否符合登入或 refresh token 的實際時間。
jtiJWT ID,token 唯一 ID是否可用於撤銷清單、稽核紀錄或重放攻擊防護。
scope權限範圍API 需要的 read、write、admin 等權限是否存在。

HS256、RS256、ES256 怎麼選?

JWT Header 裡的 alg 會告訴驗證端應該使用哪種演算法。HS256 是 HMAC SHA-256,簽發和驗證都使用同一組 secret;RS256 使用 RSA 私鑰簽章、公鑰驗章;ES256 使用橢圓曲線演算法。

後端應該明確指定允許的演算法清單,不要讓攻擊者透過修改 Header 影響驗證流程。若 JWT 來自 identity provider,通常要取得 JWKS 或公鑰,並檢查 kidissaudexp

JWT 常見錯誤與排查方式

使用 JWT Decoder 時最常遇到的問題,是 token 不是標準三段格式、Base64URL 字串被複製不完整、前後多了空白、payload 不是合法 JSON,或簽章 secret 使用錯誤。若 API 回傳 401 或 403,建議先解碼 JWT,確認 expaudscope

JWT 除錯檢查清單
  • Token 是否為 header.payload.signature 三段格式。
  • Authorization header 是否使用 Bearer schema。
  • exp 是否已過期,伺服器時間是否同步。
  • issaud 是否符合目前環境。
  • HS256 secret 是否和簽發端完全一致。
  • RS256 / ES256 是否使用正確公鑰與 kid
  • 權限 claims 是否包含 API 所需 scope 或 role。

JWT、Session、SAML 有什麼差異?

Session 通常把狀態保存在伺服器或集中式儲存,瀏覽器只保存 session id;JWT 則把部分狀態放在 token 裡,讓 API 可用簽章驗證完整性。SAML 以 XML 為主,常見於企業 SSO。

方案適合情境注意事項
JWTAPI 授權、SSO access token、微服務要控制過期時間、驗章、撤銷與敏感資料外洩。
Session傳統網站、需要即時登出或集中控管狀態需要伺服器端 session store,跨服務擴充要額外設計。
SAML企業身份整合、舊有 SSO 系統XML 結構較大,簽章與設定通常更複雜。

JWT 安全建議:白帽 SEO 也要寫清楚風險

  • 不要把密碼、私鑰、API key、付款資料或敏感個資放在 JWT Header 或 Payload。
  • 設定合理的 exp,不要讓 access token 長期有效。
  • 後端驗證時要固定允許的演算法,不要盲目信任 Header 的 alg
  • 使用足夠長且隨機的 HS256 secret;生產環境不要使用範例 secret。
  • 檢查 issaudnbfiat 與必要權限 claims。
  • 避免把過大的權限清單塞入 JWT,以免 header 太大或造成資料外洩。
  • 前端儲存 token 要評估 XSS、CSRF、Cookie 屬性與瀏覽器儲存風險。

這個線上JWT解碼工具採用瀏覽器本機處理:你貼上的 token、secret、Header JSON 和 Payload JSON 不會被上傳到 ToolBoy 伺服器。即使如此,處理真實 production token 時仍應遵守最小揭露原則。

JWT 經常和 JSON、Base64URL、URL query、timestamp、SHA-256、UUID、regex 等資料格式一起出現在 API 除錯流程中。你可以搭配 ToolBoy 的 JSON 格式化工具Base64 編碼解碼Unix 時間戳轉換UUID 產生器

延伸閱讀可參考 jwt.io 的 JSON Web Token IntroductionRFC 7519。本頁內容以中文重新整理與改寫,重點放在實務除錯、白帽 SEO 與本機隱私。

線上JWT解碼常見問題

線上JWT解碼會驗證簽章嗎?
解碼 Header 和 Payload 不等於驗證簽章;若要確認 token 是否被竄改,請輸入相同 secret 並執行 Verify。
JWT Payload 可以放密碼或金鑰嗎?
不建議。一般 JWT 只做 Base64URL 編碼,任何取得 token 的人都能讀取 Payload。
JWT 編碼器適合正式簽發 token 嗎?
這個工具適合開發、測試與除錯。正式環境應由後端服務簽發 token,並妥善管理 secret 或私鑰。