~/tools / jwt-decoder
JWT デコード・検証
JWTを貼り付けるだけでヘッダー・ペイロードを展開し、exp(有効期限)を日本時間で判定。HS256/HS384/HS512の署名検証にも対応。処理はすべてブラウザ内で完結し、トークンもシークレットも送信・保存しません。それでも本番の生トークンではなく、検証用トークンでの利用を推奨します。
検証はWeb Crypto API(crypto.subtle)でブラウザ内実行。シークレットはどこにも送信・保存されません。対応アルゴリズム: HS256 / HS384 / HS512。
※ トークン・シークレットとも外部送信なし・localStorage等への保存もなし(ページを閉じると消えます)。JWTはそれ自体が認証情報なので、可能な限り検証用トークンでお試しください。
使い方
- JWT(
xxxxx.yyyyy.zzzzzのようにピリオド2つで3分割された文字列)を入力欄に貼り付けると、即座にヘッダーとペイロードがデコードされます。 - ペイロードに
exp(有効期限)があれば日本時間に変換し、「期限切れ」か「あと何分有効」かを自動判定します。iss・sub・audなどの標準クレームも日本語の解説つきで一覧表示します。 - HS256/HS384/HS512で署名されたトークンなら、シークレット(共有鍵)を入力して「署名を検証」を押すと、トークンが改ざんされていないかを確認できます。
- 注意: デコードできること自体は「正しいトークン」の証明にはなりません。署名を検証するまでは、中身は誰でも作れる・読めるただのBase64URL文字列です。このツールは検証前の状態を「署名は未検証」と常に明示します。
デコードしたペイロードをさらに整形・変換したいときは JSON整形・検証ツール を、その他のツールは ツール一覧 をどうぞ。
よくある質問
JWTをオンラインツールに貼っても安全ですか?
このツールのデコード・署名検証はすべてブラウザ内のJavaScriptで実行され、トークンやシークレットが外部に送信されることはありません(localStorageへの保存もしません)。ただし一般論として、JWTは「それ自体がログイン状態の証明」になる認証情報です。どんなツールであっても本番環境の生きたトークンを貼るのは避け、開発・検証用に発行したトークンや期限切れのトークンで確認することを推奨します。
デコードできた=正しいトークン、ということですか?
いいえ。JWTのヘッダーとペイロードは暗号化ではなくBase64URLエンコードされているだけなので、誰でも中身を読めますし、誰でも自由に作れます。トークンが本物か(改ざんされていないか)を確かめるには署名検証が必須です。このツールでは検証していない状態を「署名は未検証」と明示しています。
RS256やES256の署名検証はできますか?
現在の署名検証はHMAC系(HS256/HS384/HS512)のみ対応です。RS256などの公開鍵系アルゴリズムのトークンもデコードとクレーム確認は可能ですが、署名検証は未対応のため「未検証」表示のままになります。
exp(有効期限)の時刻は何を基準に表示していますか?
exp・iat・nbfはUNIX時間(1970年1月1日UTCからの経過秒数)で格納されています。このツールでは日本時間(JST)に変換して表示し、現在時刻(お使いの端末の時計)と比較して期限切れかどうかを判定します。端末の時計がずれていると判定もずれる点に注意してください。