跳到主要內容
Tools

JWT 解碼

解析 JWT 的標頭與內容,說明 exp、iat 等標準宣告並顯示是否過期;只解碼、不驗證簽章,資料不會上傳。

本工具只解碼、不驗證簽章:任何人都能做出內容相同的 JWT,請勿只憑解碼結果信任它。JWT 只會在你的瀏覽器中處理,不會存進網址或瀏覽器儲存空間。

使用說明

  1. 在輸入欄位貼上 JWT,前面的「Bearer 」或換行都可以一起貼上,也可以按「範例」看看效果。
  2. 標頭與內容會即時解碼成排版好的 JSON,按各區塊的「複製」取得內容。
  3. 「標準宣告」列出 iss、sub、aud、exp、nbf、iat、jti 的意義,時間會換算成你所在時區的日期。
  4. 上方的狀態會依你裝置的時鐘顯示 JWT 目前有效、已過期或尚未生效。
  5. 如果貼上的是 5 段的加密 JWT(JWE),會顯示標頭與各段大小,內容需要金鑰才能解密。

常見問題

我的 JWT 會被上傳嗎?

不會。解碼完全在你的瀏覽器中進行,JWT 不會送到任何伺服器,也不會放進網址或存進瀏覽器的儲存空間,關閉分頁就消失。即使如此,正式環境的 JWT 等同登入憑證,貼到任何網站前都請先想清楚。

為什麼不驗證簽章?

驗證簽章需要簽發者的共用金鑰或公開金鑰。HMAC(HS256 等)的共用金鑰不應該離開伺服器,貼到網頁上就有外洩風險。本工具因此只解碼,請在你的後端用可信的函式庫驗證簽章後,才信任 JWT 的內容。

JWT 的內容是加密的嗎?

一般的 JWT(JWS,3 段)只有簽章、沒有加密,標頭與內容只是 Base64URL 編碼,任何拿到 JWT 的人都能讀取,所以不要在裡面放密碼等機密資料。需要加密時要使用 JWE(5 段)。

exp、nbf、iat 的數字是什麼?

它們是 NumericDate,也就是從 1970-01-01 UTC 起算的秒數(不是毫秒)。exp 是到期時間,到了這個時間就不能再接受;nbf 是生效時間,在這之前不能接受;iat 是簽發時間。

為什麼顯示已過期,伺服器卻還接受?

狀態是依你裝置的時鐘計算的,如果裝置時間不準就會不同。另外,有些伺服器會容許幾分鐘的時鐘誤差,或根本沒有檢查 exp。

鍵盤快捷鍵

/
搜尋工具(在工具頁會回到首頁的搜尋欄)
?
顯示這個說明
Esc
關閉對話框
Ctrl / ⌘Enter
執行工具的主要動作(支援的工具)

在輸入框中打字時,/ 與 ? 不會觸發快捷鍵。