JWT デコーダー
ブラウザーで JWT のヘッダーとペイロードをデコードし、exp/nbf/iat の日時を確認、HS256/384/512 や RS256/384/512 の署名を検証。トークンは端末から出ません。
入力内容とファイルはブラウザ内に留まります
JWT(header.payload.signature)を貼り付けるか、デモ用トークンを読み込んでください。
- ヘッダー
- ペイロード
- 署名
署名の検証
トークンを貼り付けると、ヘッダー、ペイロード、時刻クレームがここに表示されます。
時間チェックは真正性を証明しません。
このページの内容
JSON Web Token を貼り付けると、ヘッダーとペイロードが整形された JSON で表示され、署名アルゴリズムと、トークンの発行・有効開始・有効期限の日時がわかります。共有シークレットや RSA 公開鍵で署名を検証することもできます。
詳細な機能
デコードは入力と同時に行われます。ヘッダーとペイロードは base64url デコードされ、トークン内の元のクレームの順序のまま整形表示されます。HTTP ヘッダーからコピーした先頭の Bearer と改行は自動で取り除かれます。登録済みの時刻クレーム exp、nbf、iat はローカルのタイムゾーンの日時で表示され、期限切れやまだ有効でないトークンにはマークが付きます。
署名の検証は WebAssembly にコンパイルされた Rust の暗号モジュールで行われ、トークンのヘッダーに記載されたアルゴリズムを使います。HS256、HS384、HS512 は共有シークレット(UTF-8 テキストとして使用)、RS256、RS384、RS512 は PEM 形式の RSA 公開鍵(BEGIN PUBLIC KEY または BEGIN RSA PUBLIC KEY)で検証します。代わりに JWK または JWKS(例:ID プロバイダーの /.well-known/jwks.json)を貼り付けると、トークンの kid で鍵を選び(kid がなければアルゴリズムに合うすべての鍵を試します)、ブラウザーの Web Crypto API で検証します。PS256/384/512、ES256/384/512、EdDSA (Ed25519) にも対応します。alg: none のトークンは常に署名なしとして報告され、有効と表示されることはありません。
トークンと鍵はページ内にとどまり、サーバーに送信されることも保存されることもありません。デコードできても真正性の証明にはならず、それを示せるのは検証済みの署名だけです。
実用例
jwt.io のサンプル:トークン eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIi… はヘッダー {"alg":"HS256","typ":"JWT"} と、sub、name、iat を含むペイロードにデコードされます。シークレット your-256-bit-secret では「署名検証済み」、それ以外のシークレットでは「無効な署名」と表示されます。
期限切れのトークン:ペイロードに "exp": 1767225600 があると、2026 年 1 月 1 日に期限切れとマークされます(ローカルのタイムゾーンで表示)。
Authorization ヘッダーから:Bearer eyJ… をそのまま貼り付けてかまいません。デコード前にプレフィックスと改行が取り除かれます。
署名なしトークン:eyJhbGciOiJub25lIn0.eyJzdWIiOiIxIn0. は {"alg":"none"} と {"sub":"1"} にデコードされ、署名がなく信頼できないトークンとして報告されます。
このツールの使い方
トークンを貼り付ける
JWT を エンコードされた JWT に貼り付けると、すぐにデコードが始まります。
ヘッダーとペイロードを確認する
整形された ヘッダー と ペイロード、アルゴリズムのバッジ、ペイロードの下の発行・有効開始・有効期限の日時を確認します。
署名を検証する
署名の検証 で、HMAC のシークレットまたは PEM 公開鍵を シークレット / RSA 公開鍵 に入力します。署名が有効かどうかがステータスに表示されます。
ヒントとベストプラクティス
- JWT は誰でもデコードできます。パスワードなどの機密情報をペイロードに入れないでください。
- HMAC のシークレットは入力したとおりに使われます。バックエンドが base64 でエンコードして保存している場合は先にデコードしてください。base64 文字列のまま貼り付けると「無効な署名」になります。
- RS* のトークンには秘密鍵ではなく公開鍵を貼り付けます。X.509 証明書は受け付けないため、先に公開鍵を取り出してください。
- 有効期限は端末の時計と比較されるため、システム時刻がずれていると「期限切れ」の判定もずれます。
- テスト用のトークンが必要なら、JWT エンコーダーで作成できます。