JWTデコーダー・構造解析

JWT(JSON Web Token)文字列をHeader・Payload・Signatureに分解し、それぞれをJSON整形表示できるツールです。exp・nbfなどのUnixタイムスタンプを日時に自動変換し、有効期限切れを警告表示します。署名の検証は行いません。

使い方

  1. 入力欄にJWT(JSON Web Token)文字列を貼り付けます。
  2. Header・Payloadが整形されたJSONとして自動的に表示されます。
  3. PayloadにexpやnbfなどのUnixタイムスタンプが含まれる場合、日時表記に変換した一覧が表示され、有効期限切れの場合は警告バッジが表示されます。
  4. Signature部分は入力されたBase64URL文字列のまま表示されます。

このツールについて

JWTデコーダー・構造解析ツールは、JWT(JSON Web Token)文字列をHeader・Payload・Signatureの3つの部分に分解し、それぞれの内容を確認できるツールです。認証・認可の実装時に、発行されたトークンの中身をデバッグする用途で活用できます。

JWTのHeaderとPayloadはBase64URLでエンコードされたJSONです。本ツールはこれをデコードして整形表示するとともに、`exp`(有効期限)・`nbf`(Not Before)・`iat`(発行日時)といった標準クレームのUnixタイムスタンプを人間が読める日時形式に自動変換します。

本ツールはJWTの内容を可視化するものであり、署名の検証は行いません。署名が正しいかどうかを確認するには、発行元のシークレットキーまたは公開鍵を用いたサーバーサイドでの検証が必要です。

構造確認用の「eyJhbGciOiJub25lIn0.eyJzdWIiOiIxMjMifQ.」を入れると、Headerは {"alg":"none"}、Payloadは {"sub":"123"}、署名部分は空になります。これは有効な認証情報の例ではなく、3つの区画を確認するための入力です。

末尾のドットも区切りなので、コピー時に省くと3区画として解析できません。また、期限の判定は端末の現在時刻を使うため、時刻設定がずれていれば結果も影響を受けます。表示されたクレームの内容と、認証基盤で検証済みかどうかは分けて判断してください。

よくある質問

このツールで署名の正当性を確認できますか?

できません。署名の検証には方式に応じた共有シークレット(HMAC)または公開鍵(RSA・ECDSA等)が必要ですが、本ツールはそれらを扱わず、あくまでHeader・Payloadの中身をデコードして表示するだけです。

「有効期限切れ」と表示されるのはどのような場合ですか?

PayloadにExp(exp)クレームが含まれており、その値が現在時刻より過去である場合に表示されます。逆にNot Before(nbf)クレームが未来の場合は「まだ有効ではありません」と表示されます。

貼り付けたJWTがデコードできないのはなぜですか?

JWTは「ヘッダー.ペイロード.署名」の3つの部分がピリオドで区切られた形式である必要があります。コピー時に余分な空白や改行が混入していないか、3つの部分がすべて揃っているかを確認してください。

入力したJWTはサーバーに送信されますか?

送信されません。デコード処理はすべてブラウザ内のJavaScriptで実行され、外部に送信されることはありません。ただし、本物の認証トークンを第三者のツールに貼り付けること自体にリスクが伴う場合があるため、取り扱いには注意してください。