JWT解碼器
即時解碼JWT令牌,查看標頭、載荷和簽名。提供HMAC簽名驗證、有效期檢查和歷史記錄儲存功能。
JWT解碼器
輸入JWT令牌後將自動解碼
JWT解碼器是什麼?
JWT解碼器是一款分析JSON Web Token (JWT)的工具,可檢視標頭(Header)、有效載荷(Payload)、簽名(Signature),並驗證令牌的有效性。JWT廣泛用於API認證、OAuth、SSO等場景,本工具能輕鬆分析令牌結構,是開發和除錯的必備工具。
只需貼上令牌,即可立即解碼並直觀檢視演算法、過期時間、簽發資訊等所有聲明(Claims)。若使用HMAC演算法,可輸入Secret Key進行簽名有效性驗證。
適用情境
- API除錯 – 確認REST API認證令牌內容及過期狀態
- OAuth開發 – 實作OAuth 2.0 / OpenID Connect時分析access_token、id_token
- 認證錯誤排除 – 釐清「Token expired」、「Invalid signature」等認證錯誤原因
- 安全性檢查 – 確認JWT內含的敏感資訊並檢測安全性弱點
- 學習目的 – 實作練習以理解JWT結構與運作原理
- 前端開發 – 測試前端令牌解析與過期處理邏輯
主要功能
- 即時解碼 – 輸入JWT後立即分解為標頭、有效載荷、簽名並以JSON格式顯示
- 過期時間驗證 – 分析exp、iat、nbf聲明,顯示令牌有效性與剩餘時間
- HMAC簽名驗證 – 使用Secret Key驗證HS256、HS384、HS512演算法簽名
- 聲明詳細分析 – 一目了然檢視iss、sub、aud等標準聲明
- 語法高亮 – JSON鍵、字串、數字、布林值以顏色區分
- 歷史紀錄儲存 – 本地儲存最近5筆解碼的JWT,方便快速重用
- 剪貼簿複製 – 可個別複製標頭、有效載荷、簽名
- 範例JWT – 立即載入測試用範例令牌以確認功能
使用方法
- 輸入JWT – 在左側輸入欄貼上要分析的JWT令牌(以eyJ…開頭的字串)
- 確認結果 – 右側顯示Header(演算法)、Payload(資料)、Signature(簽名)
- 確認過期 – 從上方狀態卡片檢視令牌有效性與剩餘時間
- 簽名驗證(選填) – 若為HMAC演算法,輸入Secret Key後顯示簽名有效性
- 複製/應用 – 使用各區段的複製按鈕將所需部分複製至剪貼簿
理解JWT結構
JWT由點(.)分隔的三個部分組成:
| 組成要素 | 內容 | 範例 |
|---|---|---|
| Header | 演算法(alg)與令牌類型(typ) | {"alg":"HS256","typ":"JWT"} |
| Payload | 聲明(Claims)- 令牌包含的資訊 | {"sub":"123","name":"John"} |
| Signature | 以密鑰簽署標頭+有效載荷的值 | HMACSHA256(header.payload, secret) |
標準JWT聲明
| 聲明 | 說明 | 範例 |
|---|---|---|
iss |
簽發者(Issuer) | https://auth.example.com |
sub |
主體(Subject)- 使用者ID | user_12345 |
aud |
受眾(Audience)- 令牌接收者 | my-app |
exp |
過期時間(Expiration Time) | 1735689600(Unix時間戳記) |
iat |
簽發時間(Issued At) | 1735686000(Unix時間戳記) |
nbf |
生效時間(Not Before) | 1735686000(Unix時間戳記) |
jti |
令牌唯一ID(JWT ID) | abc123xyz |
支援的演算法
- HS256(HMAC + SHA-256) – 對稱金鑰演算法,最常用。可用Secret Key驗證簽名
- HS384(HMAC + SHA-384) – 比HS256更長的雜湊,安全性更高
- HS512(HMAC + SHA-512) – 最長的HMAC雜湊,最高安全性
- RS256、RS384、RS512 – RSA非對稱金鑰演算法(僅支援解碼,不支援簽名驗證)
- ES256、ES384、ES512 – ECDSA橢圓曲線演算法(僅支援解碼)
* RSA、ECDSA演算法的簽名驗證需要公鑰,目前版本僅支援HMAC演算法的簽名驗證。
個人資訊保護
本工具100%於瀏覽器中運作。您輸入的JWT令牌與Secret Key絕不會傳送至伺服器,所有解碼與簽名驗證僅在您的裝置上進行。關閉瀏覽器後所有資料將被刪除。(歷史紀錄儲存於本地儲存空間,可隨時使用「全部刪除」移除)
詳細說明
JWT解碼器的結果會根據輸入值與所選條件計算。
若需最終決策,請搭配官方標準或專業意見交叉檢核。
常見問題
JWT解碼需要Secret Key嗎?
不需要。JWT的Header與Payload僅經Base64Url編碼,無需Secret Key即可解碼。Secret Key僅用於簽名(Signature)驗證。因此請勿在JWT中存放敏感資訊。
令牌顯示已過期該怎麼辦?
若JWT的exp(過期時間)聲明早於目前時間,則顯示為已過期。已過期的令牌會被伺服器拒絕,需使用Refresh Token或重新登入以取得新令牌。
為什麼會出現簽名不符?
若您輸入的Secret Key與簽發令牌時使用的金鑰不同,就會發生簽名不符。此外,若為RSA或ECDSA演算法,本工具僅支援HMAC,會顯示「僅支援HMAC」。請確認正確的Secret Key。
JWT與基於Session的認證有何不同?
基於Session的認證由伺服器儲存Session資訊,並以Cookie管理Session ID。而JWT本身包含資訊,伺服器無需儲存狀態(Stateless)。JWT適合微服務、行動應用程式、SPA,Session適合傳統網頁應用程式。
JWT不應包含哪些資訊?
JWT的Payload並未加密,僅經編碼,任何人都可檢視。因此絕對不應包含密碼、信用卡號、身分證字號等敏感資訊。僅應包含使用者ID、權限(role)、過期時間等必要資訊。
輸入的JWT會傳送至伺服器嗎?
不會。本工具100%於瀏覽器(用戶端)中運作。您輸入的JWT與Secret Key不會傳送至伺服器,所有解碼與驗證均由JavaScript在瀏覽器中處理。您可透過網路檢測工具直接確認。
目前還沒有留言,歡迎留下第一則意見。