コンテンツへスキップ

JWTデコーダ

JSON Web Tokenをヘッダ、ペイロード、クレームにデコードし、有効期限を確認できます。また、オプションでHS256、HS384、またはHS512の署名を検証することも可能です。

ドットで区切られた3つのBase64URL部分:ヘッダー.ペイロード.署名。

 

使い方

このツールはクライアントサイドのJWTデコーダで、トークンをヘッダ、ペイロード、署名の部分に分割し、ヘッダとペイロードをbase64urlデコードして、exp、iat、subなどの登録済みクレームを読みやすいタイムスタンプと共に表示します。また、現在時刻に基づいて有効期限切れか有効かのバッジも表示されます。

  1. トークンを貼り付け

    ドットで区切られた3部分の文字列です。

  2. クレームを確認

    標準的なクレームにはラベルが付き、タイムスタンプは読みやすい日付に変換されます。

  3. 署名を検証(任意)

    HS256、HS384、またはHS512のトークンについては、シークレットを貼り付けて確認してください。

デコードと検証の違い

JWTはドットで結合された3つの部分からなります。署名アルゴリズムを記述するヘッダ、クレームを含むペイロード、そして署名です。ヘッダとペイロードはbase64urlエンコードされているだけで暗号化されていないため、キーがなくても誰でもデコードして内容を読むことができます。このツールが行うのもまさにその処理です。一方、署名はトークンがシークレットや秘密鍵を持つ正当な発行者によって発行されたことを証明するものであり、その確認はデコードとは別の操作となります。

  • 登録済みクレーム: exp(有効期限)、iat(発行時刻)、nbf(有効開始時刻)、sub(サブジェクト)、iss(発行者)、aud(対象者)、jti(トークンID)が認識されラベル付けされます。またexp、iat、nbfは読みやすい日付形式でも表示されます。
  • 有効期限チェック: expクレームが存在する場合、デバイスの現在時刻と比較します。
  • 署名検証: HS256、HS384、HS512トークンの場合、共有シークレットを入力するとブラウザ内でWeb Crypto APIを使用してHMACを再計算し、トークンの署名と比較します。RS256やES256などの公開鍵アルゴリズムは共有シークレットではなく発行者の公開鍵を必要としますが、本ツールは公開鍵に対応していないため、これらのアルゴリズムは検証非対応として報告されます。

検証していないデコード済みトークンを信頼しないでください

デコード処理自体は署名を検証しないため、誰でも任意のクレームと無効な署名を持つJWTを作成できます。デコードしたペイロードのみで認可判断を行わず、必ず先に署名を検証してください。通常はトークンを発行したのと同じライブラリを使用してサーバー側で検証します。このページでの処理はすべてブラウザ内で実行されるため、トークンや検証用に入力したシークレットが外部に送信されることはありません。

よくある質問

JWTトークンをデコードしてペイロードを確認するにはどうすればよいですか?

入力欄に、ドットで区切られた3つの部分からなる完全なJWT文字列を貼り付けてください。ツールはドットの位置で文字列を分割し、ヘッダーとペイロードのセグメントをbase64urlデコードして、各クレームを表形式で表示します。exp(有効期限)、iat(発行時刻)、sub(サブジェクト)などの標準クレームにはラベルが付けられ、読みやすい日付形式に変換されます。

JWTのデコードで署名の検証も行われますか?

いいえ、デコードと検証は別々の処理です。デコードは暗号学的な署名を確認せずにヘッダーとペイロードを読み取ります。そのため、デコード結果が正常に見えても、JWTが偽造されている可能性があります。このツールでは共有シークレットを入力することでHS256、HS384、またはHS512の署名を検証できますが、RS256やES256などの公開鍵アルゴリズムについては、秘密鍵に対応する公開鍵を利用できるサーバー側で検証する必要があります。

本番環境のJWTをこのデコーダーに貼り付けても安全ですか?

このデコーダーはブラウザ上で完全に動作するため、トークンや検証用に入力したシークレットが外部サーバーに送信されることはありません。ただし、重要なアクセス権限を持つ実際のトークンは、どのツールにも貼り付けないことを推奨します。本番環境のトークンをデバッグする必要がある場合は、テスト用のコピーや有効期限の短いトークンを使用してください。

このツールを使ってJWTの有効期限切れを確認するにはどうすればよいですか?

デコード後、ペイロードセクションのexpクレームを確認してください。このツールはUnixタイムスタンプを読みやすい日付形式に変換し、デバイスの現在時刻に基づいて有効期限切れまたは有効のバッジを表示します。現在時刻がexpの値を過ぎている場合、トークンは期限切れであり、適切に実装されたサーバーでは拒否されます。

このデコーダーはどのJWTアルゴリズムに対応していますか?

ヘッダーとペイロードの読み取りはbase64urlデコードのみで行われ、アルゴリズムに依存しないため、HS256、RS256、ES256など、どのアルゴリズムで署名されたトークンでもデコードできます。ただし、このツールでの署名検証は対称鍵方式のHS256、HS384、HS512アルゴリズムに限定されます。RSおよびESトークンの検証には共有シークレットではなく公開鍵が必要なため、このツールでは検証非対応として表示されます。