免費轉換器

JWT 令牌 解碼器

在瀏覽器中即時解碼 JWT(JSON Web Token)的標頭和負載。免費、私密、純客戶端處理,資料不會傳送至任何伺服器。

關於此工具

JSON Web 令牌 (JWT) 是一種緊湊的 URL 安全格式,用於在兩方之間傳輸聲明,由 RFC 7519 定義。 JWT 是三個由點分隔的 base64url 編碼段:標頭(演算法和令牌類型)、有效負載(聲明)和簽章(真實性的加密證明)。標頭和負載是 JSON,base64url 編碼以確保 URL 安全;簽章在編碼標頭和有效負載上使用多種演算法(HS256、RS256、ES256 等)之一。

解碼 JWT(將其分成段落並對每個段落進行 Base64 解碼)不需要任何秘密。任何擁有令牌文字的人都可以讀取其標頭和有效負載。但是,簽章只能使用秘密 (HMAC) 或公鑰(非對稱)進行驗證。解碼是為了檢查;驗證就是證明真實性。

此解碼器分割令牌,對每個段進行 Base64 解碼,將標頭和有效負載解析為 JSON,並顯示結果。它不會嘗試簽署驗證,因為這需要解碼器沒有的秘密或公鑰。解碼的輸出是唯讀檢查——對於調試令牌很有用,但不能替代應用程式程式碼中的正確驗證。

為什麼要解碼 JWT

調試身份驗證問題幾乎總是涉及檢查令牌。在程式碼中看起來有效的令牌可能有錯誤的聲明、意外的演算法、過期的 exp 時間戳記或受眾不匹配。解碼令牌可以準確揭示發行者生產的內容。

在整合工作期間檢查令牌也有幫助。連接到第三方 API 或身分提供者時,透過解碼範例令牌可以最好地理解實際的聲明名稱、格式和結構,而不是依賴可能過時的文件。

使用方法

貼上token,取得解析的內容。

  1. 貼上您的 JWT: 將完整令牌 (header.payload.signature) 放入輸入區域。解碼器接受帶有或不帶有可選承載前綴的令牌。
  2. 檢查標題: 標頭顯示簽章演算法 (alg) 和令牌類型 (typ)。常見的演算法有HS256、RS256和ES256。注意 alg: none,它表示未簽署的令牌,並且在生產中很少是安全的。
  3. 檢查有效負載: 有效負載包含聲明:iss(發行者)、sub(主題)、aud(受眾)、exp(到期)、iat(發行於)以及任何特定於應用程式的聲明。標準時間戳記是 Unix 紀元秒。
  4. 單獨驗證: 解碼器不驗證簽名。若要檢查真實性,請使用應用程式程式碼中的適當金鑰或公鑰透過 JWT 程式庫執行令牌。

常見用例

技術細節

JWT 格式是由點連接的三個段。每個段都是 base64url 編碼的——base64 的 URL 安全變體,使用 - 和 _ 而不是 + 和 /,有時會省略填充。解碼需要撤銷 URL 安全替換、填充段和 base64 解碼。

解碼後,標頭和負載為 JSON。簽名段是二進制的(原始簽名字節)且不可讀;它需要驗證金鑰才能有用。

RFC 7519 中定義的常見聲明:iss(發行者)、sub(主題識別碼)、aud(受眾)、exp(以 Unix 紀元秒為單位的到期時間)、nbf(不早於時間戳)、iat(在時間戳處發行)、jti(唯一令牌 ID)。特定於應用程式的聲明可以以任何名稱出現。

最佳實踐

常見問題

將我的 JWT 貼到此處安全嗎?
是的。解碼完全在您的瀏覽器中進行 - 令牌永遠不會發送到任何伺服器。但是,JWT 是憑證 - 不要公開分享它們(在螢幕截圖、Stack Overflow 貼文等中),因為它們可能會授予對您帳戶的存取權。
該工具是否驗證 JWT 簽名?
該工具解碼並顯示令牌內容。簽章驗證需要金鑰 (HMAC) 或公鑰 (RSA/ECDSA),這些金鑰應保留在您的伺服器上。該工具顯示所使用的演算法,但如果沒有金鑰則無法驗證。
標準 JWT 聲明是什麼意思?
iss = 發行者、sub = 主題(使用者 ID)、exp = 過期時間(Unix 時間戳記)、iat = 發行時間、nbf = 不早於、aud = 受眾、jti = JWT ID。自訂聲明可以包含任何特定於應用程式的資料。
為什麼任何人都可以解碼 JWT?
JWT 是編碼的,而不是加密的。有效負載採用 Base64URL 編碼(未加密),因此任何人都可以讀取它。簽章防止竄改,而不是讀取。切勿將敏感資料(密碼、SSN)儲存在 JWT 有效負載中。
為什麼有些令牌缺少簽名?
帶有 alg: none 的令牌沒有簽名。根據規範,它們是有效的 JWT,但不提供真實性保證,不應在生產中被接受。
JWT 是否加密?
標準 JWT 有效負載已簽署但未加密。 JWE(JSON Web 加密,RFC 7516)是加密令牌的單獨格式。大多數野外 JWT 都是 JWS(僅簽名)。
我的令牌是否上傳到伺服器?
不會。解碼發生在您的瀏覽器中;令牌不會離開您的裝置。
JWT 通常有多長?
從幾百個到幾千個字元不等。長度取決於聲明的數量和大小加上簽章長度(取決於演算法)。