本文へスキップ
kitto works
ツール一覧

JWTデコーダー|ヘッダ・ペイロードをブラウザ内で確認(署名検証なし)

JWT(JSON Web Token)を貼り付けると、ヘッダとペイロードをその場でデコードして表示します。署名の検証は行いません。入力したトークンはブラウザの中だけで処理され、外部には送信されません。

このツールはJWTのデコード表示のみを行います。署名の検証はできません(検証には秘密鍵・公開鍵が必要なため、このツールでは扱いません)。

入力したJWTはブラウザの中だけで処理され、どこにも送信されません。

デコード結果

JWTを入力すると、その場でヘッダとペイロードが表示されます。

使い方

  1. 入力欄にJWT文字列(ヘッダ.ペイロード.署名の形式)を貼り付けます。
  2. その場でヘッダとペイロードがJSONとしてデコード表示されます。exp/iat/nbfがあれば日時としても表示されます。
  3. 「ヘッダをコピー」「ペイロードをコピー」で内容をクリップボードにコピーできます。

計算・変換の根拠

このツールについて

JWT(JSON Web Token、RFC 7519)のヘッダとペイロードをブラウザ内でデコードして表示するツールです。署名の検証は行いません。 署名検証には秘密鍵または公開鍵が必要ですが、このツールはそれらを受け取らない設計です。デコード専用ツールとして、jwt.ioのデコーダー機能相当の範囲を提供します。

JWTの構造

JWTは ヘッダ.ペイロード.署名 の3パートを .(ピリオド)で連結した文字列です。各パートはbase64urlエンコードされています(+-/_、パディングの=は付与しない、というURL・HTTPヘッダで安全に使うための変形版base64)。

デコードの手順

  1. 入力を . で3パートに分割します(3パートでない場合はエラー)。
  2. 1番目(ヘッダ)・2番目(ペイロード)のパートをbase64url decodeし、UTF-8文字列として復元します。
  3. 復元した文字列をJSONとしてパースします。
  4. 3番目(署名)のパートはデコードも検証もせず、そのまま文字列として表示します。

日時クレームの読み替え

ペイロードに exp(有効期限)・iat(発行日時)・nbf(有効開始日時)が数値(NumericDate、1970-01-01T00:00:00Z からの経過秒数)として含まれる場合、人が読める日時に変換して併記します。exp が現在時刻より前であれば「有効期限切れ」の注記を表示しますが、これはあくまで表示上の付帯情報であり、署名検証を行っているわけではありません。

署名検証について

このツールは署名検証を行いません。JWTの署名を正しく検証するには、発行者が使った秘密鍵(HMAC系アルゴリズムの場合)または公開鍵(RSA/ECDSA系アルゴリズムの場合)が必要です。本ツールはそれらの鍵情報を受け取らない設計としており、ヘッダ・ペイロードの中身を確認する用途に限定しています。

よくある質問

このツールで署名を検証できますか?

できません。このツールはJWTのヘッダとペイロードをデコードして表示するだけで、署名の検証は行いません。署名を検証するには秘密鍵または公開鍵が必要ですが、このツールはそれらの入力を受け付けない設計になっています。

入力したJWTはどこかに送信されますか?

送信されません。デコード処理はすべてお使いのブラウザの中だけで行われ、外部への通信は一切発生しません。

exp・iat・nbfとは何ですか?

いずれもJWTの標準クレーム(RFC 7519で定義)で、UNIX時刻(1970-01-01T00:00:00Zからの経過秒数)で表される日時です。expは有効期限、iatは発行日時、nbfはこの日時より前は無効として扱うべき有効開始日時を表します。このツールはこれらを人が読める日時に変換して併記します。

JWTとは何ですか?

JSON Web Token(JWT、RFC 7519)は、認証・認可などの目的でクレーム(情報)をJSON形式でやり取りするための業界標準フォーマットです。ヘッダ・ペイロード・署名の3パートをbase64urlエンコードし「.」で連結した文字列として表現されます。

「有効期限切れ」と表示されましたが、このトークンは使えませんか?

このツールが表示する「有効期限切れ」は、ペイロード内のexpクレームの値と現在時刻を単純に比較した表示上の注記であり、署名の正当性を検証した結果ではありません。実際にトークンが有効かどうかは、発行元のサーバー側の検証結果に従ってください。