JWT 解碼
解析 JWT 的標頭與內容,說明 exp、iat 等標準宣告並顯示是否過期;只解碼、不驗證簽章,資料不會上傳。
本工具只解碼、不驗證簽章:任何人都能做出內容相同的 JWT,請勿只憑解碼結果信任它。JWT 只會在你的瀏覽器中處理,不會存進網址或瀏覽器儲存空間。
使用說明
- 在輸入欄位貼上 JWT,前面的「Bearer 」或換行都可以一起貼上,也可以按「範例」看看效果。
- 標頭與內容會即時解碼成排版好的 JSON,按各區塊的「複製」取得內容。
- 「標準宣告」列出 iss、sub、aud、exp、nbf、iat、jti 的意義,時間會換算成你所在時區的日期。
- 上方的狀態會依你裝置的時鐘顯示 JWT 目前有效、已過期或尚未生效。
- 如果貼上的是 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。