跳至主要內容
SPCXTools

JWT 解碼器

解碼 JSON Web Tokens,檢查是否過期並驗證 HMAC 簽章 — 完全在您的瀏覽器中進行,保障隱私。

本機執行 — 檔案絕不會離開您的裝置

正在載入工具…

如何使用 JWT 解碼器

  1. 1將 JWT(三個以點分隔的 Base64URL 區塊)貼上至 Token 欄位,或點擊 載入範例。
  2. 2以格式化的 JSON 讀取解碼後的 Header 與 Payload。
  3. 3查看狀態列以確認 Token 是否有效、已過期或尚未生效;時間聲明 (claims) 會顯示為易讀的日期格式。
  4. 4對於 HS256、HS384 或 HS512 的 Token,請輸入密鑰 (secret) 以在本地端驗證簽章。

解碼 JSON Web Token

JSON Web Token (JWT) 是一種緊湊的字串,用於在系統之間傳遞身分與權限資訊——最常見的用法是在登入後,作為 Authorization: Bearer 標頭傳送。它看起來像隨機文字,但實際上是由三個經過 Base64URL 編碼的部分組成:標頭、包含聲明的酬載,以及簽章。這個 JWT 解碼工具會將 Token 拆分,把前兩個部分解碼成易讀的 JSON 格式,並說明重要的聲明內容。解碼與驗證過程皆在本地端完成,您的 Token 絕不會被傳送出去。

功能特色

  • 標頭與酬載:解碼並格式化輸出,且皆附有複製按鈕。
  • 時間聲明說明:將 iat、nbf、exp 與 auth_time 從 Epoch 秒數轉換為您所在時區的日期與時間。
  • 過期檢查:讓您一眼看出 Token 是否已過期或尚未生效。
  • HMAC 簽章驗證:使用瀏覽器的 Web Crypto API 驗證 HS256、HS384 與 HS512 簽章。
  • 支援離線使用:網頁載入後即可離線運作,不會將任何資料傳送至外部。

適用時機

除錯身分驗證問題。 當請求失敗並回傳 401 Unauthorized 時,您可以解碼 Token 來檢查它是否已過期、是否核發給正確的受眾(aud),或是是否帶有預期的角色與權限範圍(scopes)。

開發與測試 API。 在上線前,驗證您的伺服器是否將預期的聲明內容與正確的過期時間放入 Token 中。

學習 OAuth 與 OpenID Connect 的運作原理。 來自身分提供者的 ID Token 與 Access Token 通常是 JWT。解碼測試用的 Token,可以了解提供者分享了哪些關於使用者的資訊。

JWT 結構

header.payload.signature

  • Header — Token 類型與簽章演算法,例如 {"alg":"HS256","typ":"JWT"}。
  • Payload — 包含聲明 (claims)。已註冊的聲明包含 iss (發行者)、sub (主題,通常為使用者 ID)、aud (受眾)、exp、nbf、iat 以及 jti (Token ID)。應用程式可加入自訂聲明,例如 name 或 role。
  • Signature — 使用密鑰 (HMAC) 或私鑰 (RSA、ECDSA、EdDSA) 對 header.payload 進行簽章而產生。只要 Header 或 Payload 被更改了任何一個字元,簽章就會不符。

由於 Payload 僅經過編碼,絕對不要將密碼等機密資訊放入 JWT 中。若要解碼其他 Base64 資料,請使用 Base64 工具;若要查看任何時間戳記,請使用 Unix 時間戳記轉換器。

常見問題

在這裡貼上真實的 token 安全嗎?
Token 的解碼與驗證完全在您的瀏覽器中進行,絕不會傳送到我們的伺服器。儘管如此,JWT 仍是一種憑證 — 請將其視為密碼,避免分享正式環境的 token,並盡可能使用測試用的 token。
解碼 JWT 能證明它是真實有效的嗎?
不行。任何人都可以解碼 header 和 payload,因為它們僅經過 Base64URL 編碼,並未加密。只有使用正確的金鑰驗證簽章後,token 才值得信任。對於 HMAC token,您可以在此輸入密鑰 (secret) 進行驗證;RSA 和 ECDSA token 則必須在您的應用程式中使用發行者的公鑰來驗證。
exp、iat 和 nbf 是什麼意思?
exp (到期時間) 是 token 失效的時間,iat (發行時間) 是建立的時間,而 nbf (生效時間) 是可以開始使用的最早時間。這三個都是以秒為單位的 Unix 時間戳記;解碼器會將它們轉換為您所在時區的日期與時間。
為什麼顯示 token 無效?
JWT 必須剛好包含三個以點分隔的部分,且前兩個部分必須是經過 Base64URL 編碼的 JSON。請檢查您是否複製了完整的 token,且不包含 Bearer 前綴、引號或換行字元。
它可以解碼加密的 token (JWE) 嗎?
不行。加密的 JWT 有五個部分,且其 payload 只能使用解密金鑰讀取。此工具僅處理已簽章的 token (JWS),這也是多數 API 所使用的格式。