🌐 ZH-TW

🔓 JWT 解碼器

貼上 JWT(JSON Web Token)可立即將其標頭與載荷使用 base64url 解碼為美化後的 JSON。exp、iat、nbf 聲明會以可讀時間呈現,並附上徽章顯示這個 token 是否已過期。

⚠️ 此工具僅負責解碼——不會驗證簽章。基於安全考量,故故意不提供密鑰輸入欄位。若需進行簽章驗證,請使用伺服器端的 JWT 函式庫。

指南

瞭解更多

01

1. 了解 JWT 結構

JWT 有三個以句點分隔的部分:header.payload.signature。標頭會包含簽名演算法(alg)與 token 類型(typ);載荷則保存實際聲明(使用者 ID、權限、發行時間等),全部以 base64url 編碼。簽章是使用密鑰(或私鑰)對標頭與載荷加密的結果,用於驗證 token 未被竄改,但本工具不會執行此驗證。

02

2. exp、iat 與 nbf 聲明

exp(expiration)代表到期時間,iat(issued at)代表發行時間,而 nbf(not before)表示 token 在該時間之前不可用。這三者都儲存為 Unix 時間戳(秒),人眼不易直接閱讀。本工具會同時以本地時間與 ISO 8601 顯示,若 exp 已經過去則會標示「已過期」徽章。

03

3. 何時需要驗證簽章

驗證 JWT 簽章需要用於簽名的密鑰(如 HMAC 家族中的 HS256)或對應公開金鑰(如 RSA/ECDSA 家族中的 RS256/ES256)。這屬於敏感操作,應該在伺服器端完成,所以本瀏覽器工具僅解碼(讓你檢視內容),並不會要求輸入任何密鑰。實際驗證請使用後端 JWT 函式庫(如 jsonwebtoken、PyJWT、firebase-admin 等)。

常見問題

這個工具可以用來偽造 JWT 嗎?
不能。它只會做解碼(base64url 解碼)——不會產生或驗證簽章。有效簽章必須由簽發者專有的密鑰/私鑰產生,而本工具從不接受密鑰。
為什麼沒有密鑰輸入欄位?
出於安全考量。將密鑰貼到瀏覽器工具是常見且容易意外外洩的做法,因此此工具一開始就設計為不接受密鑰輸入。
我如何判斷 token 是否已過期?
若載荷中含有 exp 聲明,會自動與目前時間比較,並顯示「已過期」或「有效(尚未過期)」徽章。
我貼上的 token 會傳送到伺服器嗎?
不會。解碼完全在你瀏覽器的 JavaScript 中完成,不會傳送到任何伺服器。