JWT 解碼器
在下方貼上JWT以解碼和檢查標頭、酬載和簽章。注意:本工具不驗證簽章。所有處理均在瀏覽器中本地完成。
已複製!
權杖資訊
什麼是 JWT?
JSON Web Token(JWT)是一種緊湊、URL 安全的權杖格式,用於在各方之間安全傳輸資訊。它由三個以點(.)分隔的部分組成:
- 標頭 - 演算法和權杖類型(例如
HS256、RS256) - 承載資料 - 宣告/資料(例如
sub、iat、exp) - 簽章 - 驗證權杖未被篡改
解碼一個權杖並不能證明它什麼,因為標頭和負載不過是 base64url,誰都能改寫。要緊的是簽章:把共用密鑰貼進來,對 HS256、HS384 和 HS512,本頁就在你的瀏覽器裡完成驗證。其餘演算法用私鑰簽章、用公鑰驗證,那種東西不該由這樣一個頁面讓你貼上。時間按你自己的時鐘顯示,並寫出相差多久,因為你要找的通常就是過期時間。
注意:此工具僅解碼權杖,不驗證簽章。
這些東西你到底是怎麼存的?
雜湊、權杖和密碼的強度,取決於它們周圍那段程式碼:成本因子還停在預設值,權杖沒人檢查過期時間,金鑰被提交進了儲存庫。我們審查並強化應用,告訴你攻擊者最先摸到的是哪一處。
預約一次安全審查常見問題
能解碼是不是就說明權杖有效?
不是,這正是最該避開的誤解。標頭和負載不過是 base64url,誰都能改寫,做出一個解碼得漂漂亮亮的東西。只有簽章才能說明這個權杖確實來自它宣稱的一方。把密鑰貼進來,本頁面就會替你驗證。
這裡能驗證哪些演算法?
用共用密鑰簽章的 HS256、HS384 和 HS512。RS、ES 和 PS 權杖用私鑰簽章、用公鑰驗證,而無論哪一種,往網頁裡貼上都是不該養成的習慣。那些請在你自己的程式碼裡,用公布的金鑰集去驗證。
alg 為 none 的權杖是什麼意思?
意思是它根本沒有可用的簽章,負載想寫什麼都行。規範裡保留它,是給那些用別的方式保護的權杖用的;而當某個函式庫預設接受它時,這就是一個眾所周知的攻擊。如果你在真實權杖上看到它,就把這個權杖當成不可信的輸入。
在這裡貼上真實權杖安全嗎?
頁面從不上傳任何東西,所以沒有內容離開你的瀏覽器。話雖如此,還在生效的權杖本身就是一份憑證,而密鑰輸入框被刻意排除在儲存的設定和查詢字串之外,免得被無意存下或分享出去。凡是貼到你無法掌控的地方的,請一律撤銷。
為什麼過期時間會一併顯示時間差?
因為你想知道的通常就是這個。一個四分鐘前過期的權杖和一個四小時後過期的權杖,寫成數字幾乎一模一樣,所以頁面把兩者都按你自己的時鐘呈現,並寫清相差多久。如果你要和伺服器日誌對照,也可以切換成 UTC。