JWT解碼器

即時解碼JWT令牌,查看標頭、載荷和簽名。提供HMAC簽名驗證、有效期檢查和歷史記錄儲存功能。

最後更新: 2026/01/26

JWT解碼器

JWT令牌輸入
簽名驗證(選填)
所有資料僅在瀏覽器內處理
最近記錄 全部清除
暫無儲存的歷史記錄

輸入JWT令牌後將自動解碼

100%瀏覽器處理:您的JWT和Secret Key不會傳送到任何伺服器。

什麼是JWT解碼器?

JWT解碼器是一款開發者工具,用於分析JSON Web Token(JWT)的內部結構和資料。JWT是Web應用程式中廣泛使用的使用者認證和資訊交換標準(RFC 7519)。透過本工具,您可以輕鬆分析令牌的標頭、載荷和簽名。

主要功能

  • 即時解碼:輸入JWT令牌後,立即以JSON格式顯示標頭和載荷。
  • 簽名驗證:可驗證使用HMAC演算法(HS256、HS384、HS512)簽名的令牌有效性。
  • 到期時間檢查:將exp、iat、nbf等時間相關聲明轉換為易讀的日期格式。
  • 歷史管理:儲存最近解碼的令牌,方便快速查閱。
  • 100%用戶端處理:所有解碼均在瀏覽器中完成,確保安全性。

瞭解JWT結構

JWT由三個部分組成,以點(.)分隔:

  • 標頭(Header):指定令牌類型(typ)和簽名演算法(alg)。例如:{“alg”: “HS256”, “typ”: “JWT”}
  • 載荷(Payload):包含稱為聲明(claims)的實際資料。包括使用者資訊、權限、到期時間等。
  • 簽名(Signature):使用金鑰對編碼後的標頭和載荷進行簽名的結果。用於防止令牌竄改。

主要聲明說明

JWT載荷可以包含各種標準聲明:

  • iss(Issuer):識別令牌的發行者。
  • sub(Subject):表示令牌的主題(通常是使用者ID)。
  • aud(Audience):指定令牌的接收者。
  • exp(Expiration Time):令牌的到期時間。超過此時間令牌將失效。
  • nbf(Not Before):在此時間之前令牌無效。
  • iat(Issued At):令牌的發行時間。
  • jti(JWT ID):令牌的唯一識別碼。

使用方法

  1. 將JWT令牌貼上到輸入框中,或點選範例按鈕查看範例。
  2. 輸入令牌後,將自動顯示標頭、載荷和簽名資訊。
  3. 如需驗證簽名,請在Secret Key輸入框中輸入金鑰。
  4. 時間相關聲明會自動轉換為易讀的日期格式。
  5. 最近解碼的令牌會儲存在歷史記錄中,方便以後查閱。

安全注意事項

  • 注意敏感資訊:JWT載荷未加密,僅進行Base64編碼。請勿在載荷中包含敏感資訊。
  • 必須驗證簽名:在正式環境中,必須驗證簽名以防止令牌竄改。
  • 檢查到期時間:始終檢查exp聲明,避免使用過期令牌。
  • 使用HTTPS:傳輸JWT時務必使用HTTPS,防止令牌被竊取。

常見問題

什麼是JWT令牌?

JWT(JSON Web Token)是一種開放標準(RFC 7519),用於在雙方之間安全地傳輸資訊。它採用自包含(self-contained)方式,所有必要資訊都儲存在令牌本身中,無需單獨的工作階段儲存即可實現使用者認證。JWT廣泛應用於Web應用程式的登入系統、API認證和單一登入(SSO)。

JWT與工作階段認證有什麼區別?

工作階段認證將使用者資訊儲存在伺服器上,只向用戶端提供工作階段ID。而JWT將所有資訊包含在令牌本身中,無需維護伺服器狀態(無狀態)。這使JWT非常適合分散式系統和微服務架構,便於伺服器擴展。

JWT解碼安全嗎?

本JWT解碼器100%在瀏覽器中執行,不會將任何資料傳送到伺服器。但是,JWT載荷未加密,只是進行了Base64編碼,任何人都可以解碼。因此,不應在JWT中包含密碼或信用卡號等敏感資訊。

HS256和RS256等演算法有什麼區別?

HS256(HMAC-SHA256)是對稱金鑰演算法,簽名和驗證使用相同的金鑰。RS256(RSA-SHA256)是非對稱金鑰演算法,使用私鑰簽名、公鑰驗證。HS256實作簡單且速度快,而RS256可以安全地分發公鑰,在微服務環境中更具優勢。

JWT令牌到期後該怎麼辦?

JWT到期後需要取得新令牌。通常使用重新整理令牌(Refresh Token)來更新存取令牌(Access Token)。存取令牌有較短的到期時間(如15分鐘),重新整理令牌有較長的到期時間(如7天)。這樣可以平衡安全性和使用者體驗。

JWT應該儲存在哪裡?

JWT可以儲存在localStorage、sessionStorage或Cookie中。localStorage方便但容易受到XSS攻擊。HttpOnly Cookie由於JavaScript無法存取而更安全,但需要防範CSRF攻擊。對於安全性要求高的應用,建議使用設定了HttpOnly、Secure和SameSite屬性的Cookie。

為什麼需要驗證簽名?

簽名驗證用於確認JWT未被竄改。如果惡意使用者修改了載荷,簽名將不匹配。伺服器使用金鑰重新計算簽名,並與令牌中的簽名進行比較,以驗證令牌的完整性。沒有這個過程,任何人都可以修改令牌來冒充其他使用者。

聯絡我們