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"} にデコードされ、署名がなく信頼できないトークンとして報告されます。

このツールの使い方

  1. トークンを貼り付ける

    JWT を エンコードされた JWT に貼り付けると、すぐにデコードが始まります。

  2. ヘッダーとペイロードを確認する

    整形された ヘッダー と ペイロード、アルゴリズムのバッジ、ペイロードの下の発行・有効開始・有効期限の日時を確認します。

  3. 署名を検証する

    署名の検証 で、HMAC のシークレットまたは PEM 公開鍵を シークレット / RSA 公開鍵 に入力します。署名が有効かどうかがステータスに表示されます。

ヒントとベストプラクティス

  • JWT は誰でもデコードできます。パスワードなどの機密情報をペイロードに入れないでください。
  • HMAC のシークレットは入力したとおりに使われます。バックエンドが base64 でエンコードして保存している場合は先にデコードしてください。base64 文字列のまま貼り付けると「無効な署名」になります。
  • RS* のトークンには秘密鍵ではなく公開鍵を貼り付けます。X.509 証明書は受け付けないため、先に公開鍵を取り出してください。
  • 有効期限は端末の時計と比較されるため、システム時刻がずれていると「期限切れ」の判定もずれます。
  • テスト用のトークンが必要なら、JWT エンコーダーで作成できます。