toolfree

JWT 解碼器

在瀏覽器裡解碼 JSON Web Token。權杖不會離開這個分頁,而這很重要,因為 JWT 通常就是一個還活著的工作階段。

在你的瀏覽器中執行

請貼上一個權杖。

完全在這個頁面裡解碼。JWT 通常就是一個還活著的工作階段,這裡不會把它送到任何地方。

為什麼這一個特別在意「在哪裡執行」

你剪貼簿裡的 JWT,多半是一個還沒過期的工作階段。它不是雜湊值也不是指紋——它本身就是 憑據。任何拿到它的東西,在它過期之前都能以你的身分行動。

每一個把權杖送到伺服器的線上 JWT 解碼器,在那一刻就等於被交付了這個東西。大多數經營者對 你的權杖並沒有興趣;但那和「它是安全的」不是同一件事,而且你也無從查證。

這一頁在分頁內解碼。沒有任何傳輸,而且有一項瀏覽器測試斷言解碼一個權杖完全不會發出任何 網路請求——這個宣稱是被測試過的,不只是寫出來而已。

JWT 沒有加密

這一點常讓以為那串亂碼藏著什麼的人意外。

標頭與內容是 base64url,不是加密。任何拿到權杖的人,不需要任何金鑰就能讀出裡面每一個 聲明——這一頁做的正是這件事。簽章並不隱藏內容,它只證明內容沒有被竄改。

所以千萬不要在 JWT 裡放你不願意寫在明信片上的東西。不要放密碼,也不要放你不願意交給「最後 拿到這個權杖的人」的個人資料。

這一頁比原始 JSON 多告訴你的事

看得懂的有效期限。expiatnbf 都是 Unix 秒數,沒有人能一眼讀懂。這裡會把它們 換算成當地時間,並直接說明這個權杖是不是已經過期。

**根本沒有有效期限。**缺少 exp 會被當成一件獨立的事實回報,而不是「尚未過期」。一個自己 永遠不會過期的權杖,是比「昨天過期」更令人不安的東西,把兩者混為一談會把它藏起來。

**alg: none。**宣告沒有演算法的權杖等於沒有簽章,所以它的任何內容都不可信。這曾是一整類 著名的身分驗證繞過手法的基礎:伺服器被誘導接受了一個本應驗證的 none 權杖。

**異常長的壽命。**有效期超過三十天的都會被標記,因為長效的持有者權杖等於一個實務上無法撤銷 的憑據。

驗證是另一回事

這裡只做解碼,不做驗證。檢查簽章需要金鑰,而把簽章金鑰貼進網頁,比貼權杖更糟——那把金鑰簽的 是所有權杖,不只這一個。

請在簽發它的伺服器上驗證,或用一個持有金鑰的本機工具。

沒有任何上傳

完全在這個頁面裡解碼。權杖不會被儲存、不會被記錄,也不會被送出。