JWT 解析與除錯工具
解析結果
JWT 的三大組成部分結構分析
一個完整的 JWT 總是包含三個部分,它們之間用點(.)分隔,格式為:Header.Payload.Signature。
1. Header (標頭)
標頭通常包含兩個資訊:
"alg":用於簽名(Signature)的加密演算法,例如HS256(HMAC with SHA-256)或RS256(RSA with SHA-256)。"typ":Token 的類型,通常固定為"JWT"。
這個工具會將 Base64URL 編碼後的第一部分解碼,讓您清楚看到 Header 內容。
2. Payload (負載,即內容)
Payload 包含了所有您想要傳輸的實際資料,這些資料以一組聲明(Claims)的形式存在。常見的 Claims 包括:
"iss":發行者 (Issuer)。"exp":過期時間 (Expiration Time)。"iat":發行時間 (Issued At)。"sub":主題 (Subject),通常是使用者 ID 或名稱。
重要提醒: Payload 雖然經過 Base64URL 編碼,但**並非加密**。任何第三方都可以使用本工具或線上工具將其解碼。因此,**絕對不要**在 Payload 中放置敏感的個人資料(如密碼或銀行資訊)。
3. Signature (簽名)
簽名是用來驗證發送者身份並確保 Token 在傳輸過程中未被篡改的部分。
簽名的計算方式如下:將 Base64URL 編碼後的 Header 和 Base64URL 編碼後的 Payload,加上伺服器上儲存的**密鑰(Secret Key)**,一起透過 Header 中指定的加密演算法進行雜湊運算。
安全性核心: 由於 Signature 依賴於只有伺服器知道的密鑰,如果有人篡改了 Header 或 Payload 的內容,重新計算出的 Signature 將會不同,從而導致伺服器驗證失敗,保護了資料的完整性。
關於 Base64URL 編碼
JWT 使用的是 **Base64URL Safe** 編碼,而非標準的 Base64 編碼。與標準 Base64 相比,Base64URL 替換了 +、/ 這兩個可能在 URL 中引起問題的符號,並移除了填充符 =,確保整個 Token 可以在 URL 和 HTTP 標頭中安全傳輸,不會造成解析錯誤。
本工具的安全性與運作原理
本 JWT 解析器完全在您的**瀏覽器客戶端**執行 JavaScript 程式碼。這意味著:
- **隱私保護:** 您貼上的 JWT 字串不會上傳到任何伺服器。所有解碼操作都在您的電腦上進行。
- **除錯用途:** 本工具旨在協助開發者快速檢查 JWT 的內容(Header 和 Payload)。由於我們無法存取伺服器的私鑰,本工具**無法驗證 Signature** 的有效性或檢查 Token 是否被竄改。
請將本工具視為一個方便的內容瀏覽器,但真正的安全驗證工作,仍應由您的後端應用程式負責。
0 留言