解碼 Header
JSON貼上 JWT 後會在這裡顯示解析內容。
免費線上JWT解碼與JWT編碼工具(JWT Decoder / JWT Encoder),可解析 JSON Web Token 的 Header、Payload 與 Signature,支援 HS256 簽章驗證與產生 JWT,資料只在瀏覽器處理。
在下方貼上 JWT,立即解碼、檢查與驗證。
等待輸入 JSON Web Token。
貼上 JWT 後會在這裡顯示解析內容。
貼上 JWT 後會在這裡顯示解析內容。
解碼後會在這裡顯示 Signature。
輸入簽發 JWT 時使用的 secret。HS256 驗證會在你的瀏覽器本機執行。
編輯 Header 與 Payload JSON,並使用 HS256 簽章。
準備產生 JWT。
這組 token 適合本機測試與開發除錯。
JWT 是常用於登入、API 驗證與服務間授權的 token 格式,由 Header、Payload 與 Signature 三段組成。
Payload 內容可以被解碼閱讀,敏感資料不應放入 JWT claims。
本頁支援 HS256 簽章驗證與產生,方便檢查測試環境 token 是否由相同 secret 建立。
所有 JWT 解碼、編碼與簽章驗證都在瀏覽器本機完成。
JWT SEO KNOWLEDGE BASE
如果你正在搜尋「JWT Decoder」、「JWT 解碼器」、「JSON Web Token 解析」、「JWT Verify」或「JWT Encoder」,通常代表你手上已經有一段 token,需要快速看懂它的 Header、Payload、過期時間、簽章演算法與 claims。這個頁面不只提供線上 JWT 解碼工具,也整理開發者最常查詢的 JWT 基礎知識。
JWT 是 JSON Web Token 的縮寫,是一種用 JSON 表示資訊、再轉成精簡字串的 token 格式。它常被用在前後端分離網站、App API、會員登入、單一登入 SSO、微服務授權與服務間資料交換。
JWT 解碼不需要密碼,因為 Header 和 Payload 只是 Base64URL 編碼,不是加密。任何拿到 token 的人都可以用 JWT Decoder 看見 Payload 內容,因此 claims 不能放密碼、API key 或敏感個資。
最常見的使用情境是授權。使用者登入成功後,授權伺服器簽發 JWT,前端或 App 在之後呼叫 API 時,把 token 放在 HTTP Authorization header,例如 Authorization: Bearer <token>。
JWT 也常用於資訊交換。當兩個系統需要交換可驗證的資料時,簽章可以讓接收端確認資料沒有在傳輸過程中被更改。大型系統常用 JWKS 端點公開公鑰,讓不同服務能驗證 token 來源。
標準 JWT 通常由三段以句點分隔的 Base64URL 字串組成:Header.Payload.Signature。第一段 Header 描述 token 類型與簽章演算法,第二段 Payload 放 claims,第三段 Signature 用來驗證完整性。
常見 registered claims 包含 iss、sub、aud、exp、nbf、iat 與 jti。良好的 API 驗證通常會至少檢查 exp、iss 與 aud。
典型流程是:使用者登入,授權伺服器驗證帳密或第三方登入結果,接著簽發 access token;前端把 access token 附在 API 請求中;後端 API 驗證 token 後回傳受保護的資料。
JWT 不是萬能的 session 替代品。token 一旦簽發,在過期前通常不需要查資料庫就能被驗證,但撤銷 token、權限即時變更與登出處理仍需要設計。
JWT validation 通常指檢查 token 是否符合預期規則,例如是否有三段、是否能解碼、JSON 是否合法、是否過期、issuer 是否正確、audience 是否符合目前 API。
JWT verification 則會用指定演算法與金鑰重新計算簽章,再和 token 第三段 Signature 比對。看得懂 Payload 不代表 token 可信;正式 API 必須做驗章與 claims 驗證。
JWT Decode 是把 token 第一段和第二段轉回 JSON,讓你閱讀 Header 與 Payload。JWT Encode 則是反向流程:準備 Header JSON 和 Payload JSON,產生 Signature,最後組合成完整 token。
如果你只是想看 Payload 內容,不需要 secret;如果你要確認 token 是否真的由你的系統簽發,就必須使用正確 secret 或公鑰驗證 Signature。目前本頁支援 HS256。
使用線上JWT解碼時,你應該同時檢查 token 是誰簽發、發給哪個系統、何時生效、何時過期,以及權限範圍是否符合 API 需求。下表整理常見 JWT claims。
| Claim | 中文意思 | 除錯時要檢查什麼 |
|---|---|---|
iss | Issuer,簽發者 | 是否為你的授權伺服器或可信任 identity provider。 |
sub | Subject,使用者或主體 ID | 是否對應正確使用者、會員、服務帳號或裝置。 |
aud | Audience,token 受眾 | 是否發給目前 API;audience 錯誤常造成 401。 |
exp | Expiration time,過期時間 | 是否已過期;注意 Unix timestamp 與時區顯示差異。 |
nbf | Not before,生效時間 | 是否尚未到可使用時間;伺服器時間偏差也會影響。 |
iat | Issued at,簽發時間 | 是否符合登入或 refresh token 的實際時間。 |
jti | JWT ID,token 唯一 ID | 是否可用於撤銷清單、稽核紀錄或重放攻擊防護。 |
scope | 權限範圍 | API 需要的 read、write、admin 等權限是否存在。 |
JWT Header 裡的 alg 會告訴驗證端應該使用哪種演算法。HS256 是 HMAC SHA-256,簽發和驗證都使用同一組 secret;RS256 使用 RSA 私鑰簽章、公鑰驗章;ES256 使用橢圓曲線演算法。
後端應該明確指定允許的演算法清單,不要讓攻擊者透過修改 Header 影響驗證流程。若 JWT 來自 identity provider,通常要取得 JWKS 或公鑰,並檢查 kid、iss、aud、exp。
使用 JWT Decoder 時最常遇到的問題,是 token 不是標準三段格式、Base64URL 字串被複製不完整、前後多了空白、payload 不是合法 JSON,或簽章 secret 使用錯誤。若 API 回傳 401 或 403,建議先解碼 JWT,確認 exp、aud、scope。
header.payload.signature 三段格式。Bearer schema。exp 是否已過期,伺服器時間是否同步。iss 和 aud 是否符合目前環境。kid。Session 通常把狀態保存在伺服器或集中式儲存,瀏覽器只保存 session id;JWT 則把部分狀態放在 token 裡,讓 API 可用簽章驗證完整性。SAML 以 XML 為主,常見於企業 SSO。
| 方案 | 適合情境 | 注意事項 |
|---|---|---|
| JWT | API 授權、SSO access token、微服務 | 要控制過期時間、驗章、撤銷與敏感資料外洩。 |
| Session | 傳統網站、需要即時登出或集中控管狀態 | 需要伺服器端 session store,跨服務擴充要額外設計。 |
| SAML | 企業身份整合、舊有 SSO 系統 | XML 結構較大,簽章與設定通常更複雜。 |
exp,不要讓 access token 長期有效。alg。iss、aud、nbf、iat 與必要權限 claims。這個線上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 Introduction 與 RFC 7519。本頁內容以中文重新整理與改寫,重點放在實務除錯、白帽 SEO 與本機隱私。