JWT 解碼

在瀏覽器中解碼 JSON Web Token:檢視 header 與 payload,把 iat、nbf、exp 轉成日期並判斷是否過期,也能驗證 HS256、HS384、HS512 簽章。

JWT 只在你的瀏覽器中解碼,不會傳送到伺服器,離開頁面後也不會被記住。

驗證簽章

時間欄位

欄位 時間戳記 日期時間(本機時區) 相對時間
簽章

JWT 是什麼?

JWT(JSON Web Token)是常見的登入憑證格式,由三段以 . 分隔的 Base64URL 組成:header.payload.signature。header 說明簽章演算法,payload 是使用者資料與到期時間等「聲明」(claim),signature 用來確認內容沒有被竄改。

如何使用

  1. 把 JWT 貼到左邊,可以包含開頭的 Bearer ,右邊會立即顯示 header、payload 與到期狀態。
  2. iat(簽發)、nbf(生效)、exp(到期)會轉成你所在時區的日期時間。
  3. 如果是 HS256、HS384、HS512,輸入密鑰即可驗證簽章是否正確。

範例

按「載入範例」載入的 JWT,payload 解碼後是:

{
  "sub": "1234567890",
  "name": "Mike",
  "role": "admin",
  "iat": 1700000000,
  "exp": 4102444800
}

它是以密鑰 toolpivo-secret 簽出的 HS256 token。

常見問題

JWT 的內容是加密的嗎?

不是。header 與 payload 只是 Base64URL 編碼,任何人拿到 token 都能看到內容,所以不要在 payload 放密碼等機密。簽章只能證明內容沒有被改過,不能隱藏內容。

把 token 貼到這裡安全嗎?

解碼與驗證都在你的瀏覽器中完成,token 與密鑰不會傳送到伺服器,也不會存到瀏覽器裡。不過正式環境的 token 仍建議用完就讓它過期。

為什麼 RS256 不能驗證?

RS256、ES256 等演算法用私鑰簽章、公鑰驗證,需要取得發行者的公鑰;本工具目前只支援用同一把密鑰簽章與驗證的 HS256、HS384、HS512。

exp 的單位是什麼?

依照 JWT 標準(RFC 7519),exp、iat、nbf 都是以「秒」為單位的 Unix 時間戳記,不是毫秒。