安全的本機 JWT 編碼器
這款 jwt 編碼器讓開發者能直接在瀏覽器中快速建立、修改與簽署 JSON Web Token。無論您是在建置身分驗證流程、測試 API 端點,還是為微服務除錯,都能即時產生有效的 Token,無須編寫自訂腳本,也不會將憑證暴露給第三方伺服器。
由於本工具採用瀏覽器原生的 Web Crypto API,所有資料處理與加密簽章完全在您的裝置上進行。您的 JSON payload 與密鑰絕不會被上傳、儲存或記錄。這種本機優先的運作方式確保了線上簽署 JWT 的安全性,即使是處理開發或測試環境的敏感憑證也能安心使用。
如何建立 JWT token
要 建立 JWT token,您需要三個部分:標頭 (定義演算法)、酬載 (包含您的資料) 以及密鑰 (保護 token 安全)。
首先,請選擇您的演算法。本工具是一個強大的 HS256 JWT 產生器,同時也支援 HS384 和 HS512。這些是 HMAC 對稱式演算法,代表簽發 token 與後續驗證都是使用完全相同的密鑰。數字越大 (例如 512),產生的雜湊值大小就越大,能提供更強的密碼學安全性,但代價是 token 字串會稍微長一點。
接著,在提供的文字區塊中定義您的酬載。酬載必須是有效的 JSON 格式。當您編輯 JSON 或更新密鑰時,工具會即時重新計算簽章;若 JSON 結構出現語法錯誤,也會立即提示。設定好酬載與密鑰後,即可複製最終產生的 token,並用於您應用程式的 Authorization 標頭或 cookies 中。
產生 Token 的常見使用情境
在現代網頁開發中,手邊有一個可靠的 JWT 產生器是不可或缺的。開發者經常在各種測試與除錯情境中使用此工具:
測試 API 端點: 使用 Postman 或 Insomnia 等 API 用戶端時,通常會需要有效的 Bearer Token 才能存取受保護的路由。與其啟動整個前端應用程式來登入並取得 Token,不如直接在此手動產生,並自訂所需的使用者 ID 與角色權限。
除錯身分驗證邏輯: 若後端拒絕了 Token,手動建立 Token 有助於釐清問題癥結。您可以藉此驗證問題是出在密鑰錯誤、Payload 格式不正確,還是簽章演算法不符。
模擬邊緣情境: 測試後端如何處理過期的 Token、缺少的 Claims 或未授權的角色,對系統安全性至關重要。您可以在此輕鬆修改 JSON Payload 來建立這些邊緣情境,確保伺服器能回傳正確的 HTTP 狀態碼。
管理時間戳記與聲明
JSON Web Token 使用特定的欄位(稱為聲明,claims)來傳遞有關 Token 生命週期及其代表的使用者資訊。最常見與時間相關的聲明是 iat (核發時間) 和 exp (到期時間)。這兩個聲明都需要使用 Unix 時間戳記,也就是自 1970 年 1 月 1 日起算所經過的秒數。
在測試期間,手動計算這些時間戳記可能會很繁瑣。為了加快您的工作流程,本工具在 Payload 編輯器上方提供了快速操作按鈕。
- 點擊 iat = now 即可使用目前的 Unix 時間立即插入或更新
iat欄位。 - 點擊 exp = +1h 或 exp = +24h 會計算未來的時間戳記,並相應地更新
exp欄位。
這能確保您產生的 Token 立即生效,且不會被伺服器的時間驗證邏輯過早拒絕。
處理 Base64 密鑰
線上簽署 JWT 時,常見的障礙之一是處理密鑰編碼。許多後端系統與教學會建議為 HMAC 密鑰產生高強度的隨機位元組陣列,並將其作為 Base64 字串儲存在環境變數中。
如果您的伺服器在簽署或驗證 token 之前,會先將此 Base64 字串解碼為原始位元組,那麼直接將 Base64 字串貼到一般的產生器將會導致簽章無效。因為產生器會將 Base64 字元視為純文字處理,進而導致簽章不符。
要解決這個問題,只要勾選 密鑰為 Base64 編碼 選項即可。本工具會先將密鑰字串解碼為原始位元組,再進行 HMAC 雜湊,確保最終產生的簽章與您的後端環境完全一致。
了解 JWT 結構
當您產生 token 時,輸出結果會以顏色標示,幫助您了解其結構。標準的 JWT 包含三個部分,並以句點 (.) 分隔:
- Header (紅色): 包含 token 的中繼資料,主要是簽章演算法 (例如:
{"alg":"HS256","typ":"JWT"})。這會根據您選擇的演算法自動產生,並進行 Base64-URL 編碼。 - Payload (藍色): 您實際的 JSON 資料,同樣經過 Base64-URL 編碼。任何人只要攔截到 token 都能輕易讀取這部分,因此絕對不要將密碼或高度敏感的資料放在 payload 中。
- Signature (綠色): 將編碼後的 header 與 payload 進行加密雜湊,並使用您的密鑰進行簽章。這能確保 token 在傳輸過程中未被竄改。
如果您已有 token,且想在沒有密鑰的情況下檢視其內容,可以將其貼到我們的 JWT 解碼器,即可安全地查看 header 與 payload。