JWTデコードツール

JWT(JSON Web Token)文字列を貼り付けると、ヘッダー・ペイロードを復号して表示し、有効期限(exp)が切れているかを判定します。署名の検証は行わないため、改ざんされていないことの確認にはなりません。処理はすべてブラウザ内で完結し、入力内容がサーバーへ送信されることはありません。

これは署名を検証しません。改ざん検知の目的では使用できません。秘密鍵(または公開鍵)を持たないため、内容を復号して表示するだけです。

これは署名を検証しません。改ざん検知の目的では使用できません。

有効期限の指定なし

このトークンには exp(有効期限)クレームが含まれていません。 / 発行(iat): 2018-01-18T01:30:22.000Z

{ "alg": "HS256", "typ": "JWT" }
{ "sub": "1234567890", "name": "John Doe", "iat": 1516239022 }

署名(signature): SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

この結果を共有
このツールを共有

JWTデコードの使い方

  1. JWT文字列を貼り付ける

    ヘッダー・ペイロード・署名がドットで区切られた文字列(xxxxx.yyyyy.zzzzz の形式)を入力欄に貼り付けます。サンプルボタンで動作を試すこともできます。

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

    復号されたJSONがそれぞれ整形表示されます。alg(署名アルゴリズム)やexp(有効期限)など、含まれるクレーム(項目)を確認してください。

  3. 有効期限の状態を見る

    expクレームがあれば「有効期限内」「有効期限切れ」を判定して表示します。exp が無いトークンでは「有効期限の指定なし」と表示されます。

仕組みと考え方

JWT(JSON Web Token)は、ヘッダー・ペイロード・署名の3つをドットで連結した文字列です。ヘッダーとペイロードはそれぞれJSONをBase64URL(パディングを省いたURLセーフなBase64)で符号化しただけのもので、暗号化はされていません。本ツールはこのBase64URLを復号してJSON.parse()するだけの処理を、ブラウザ内で行っています。

重要な注意点として、本ツールは署名を一切検証しません。署名の検証には発行者が持つ秘密鍵(HS256などの共通鍵方式)または公開鍵(RS256などの公開鍵方式)が必要ですが、本ツールはそれを持たず、また受け取ってもいません。つまり「内容を読める」ことと「改ざんされていないと確認できる」ことはまったく別で、本ツールができるのは前者だけです。トークンの真正性を確認する必要がある場合は、発行元のシステムで署名検証を行ってください。

有効期限の判定は、ペイロードに含まれるexp(有効期限、UNIX秒)を現在時刻と比較しているだけです。expが無いトークンや、時計が大きくずれた端末では判定が実態と合わないことがあります。iat(発行時刻)も同様に表示しますが、どちらも発行者が任意に設定した値であり、署名を検証しない以上、値そのものが改ざんされていないことは保証できません。

使いどころ・注意点

  • JWTには機密情報を平文で入れないのが原則。ヘッダー・ペイロードは誰でも読めるため、パスワードなどを含めてはいけない。
  • 本ツールで表示した内容を「正当なトークンである証明」として扱わない。真正性の確認には発行元での署名検証が必須。
  • algが"none"になっているトークンは署名なしを意味し、それ自体が改ざんの兆候であることが多い。
  • 有効期限切れのトークンでログインエラーが出た場合は、まずexpの値をこのツールで確認し、発行からの経過時間を確認する。

よくある質問

貼り付けたJWTは保存・送信されますか?

いいえ。復号処理はブラウザ内のJavaScriptだけで行い、当サイトのサーバーへは送信していません。

このツールで「改ざんされていない」ことを確認できますか?

できません。署名の検証には発行者の秘密鍵・公開鍵が必要ですが、本ツールはそれを持たず検証も行いません。内容を復号して表示するだけの機能です。

「JWTの形式が正しくありません」と出ます。

JWTはドットで区切られた3つの部分(ヘッダー・ペイロード・署名)から成る必要があります。コピーの際に一部が欠けていないか、余分な空白や改行が混ざっていないかを確認してください。

有効期限が「指定なし」と出ます。

ペイロードにexp(有効期限)クレームが含まれていないトークンです。有効期限の運用をしていないトークン、またはリフレッシュトークンなど別の仕組みで期限を管理している場合にこの表示になります。

ペイロードのJSONが不正だとエラーになりました。

Base64URL部分は正しくデコードできても、その中身が有効なJSONでない場合はJWTとして不完全です。トークンの発行元やコピー元を確認してください。

ほかの無料ツールも見る

文字数カウント

文字数(空白含む/除く)・バイト数・行数・単語数・原稿用紙の枚数・段落数・文の数・読了時間・文字種別の内訳を入力と同時に集計します。

文字列変換

大文字↔小文字、全角↔半角、ひらがな↔カタカナ、HTMLエスケープ、改行コード変換をまとめて行います。

テキスト差分(diff)

2つの文章を並べて比較し、追加・削除された行と文字を色分けして表示します。

重複削除・並べ替え

行単位の重複行の削除、五十音・英数字順の並べ替え、空行削除、行番号の付与を行います。

Markdownプレビュー

Markdown記法をその場でプレビューし、見出し・表・コードブロックの見え方を確認できます。

くじ引き・抽選

名前や景品を1行に1件ずつ貼り付けるだけで、暗号学的に安全な乱数で当選者を重複なく選びます。

JSON整形・検証

JSONの整形(インデント付与)・圧縮・構文エラー箇所の特定を行います。値が変わる箇所も警告します。

CSV⇔JSON変換

CSV・TSVをJSON配列へ、JSON配列をCSVへ相互変換します。引用符や改行を含むセルにも対応します。

Base64エンコード・デコード

日本語を含むテキストのBase64変換と復元を行います。URLセーフ形式やデータURIにも対応します。

URLエンコード・デコード

URLのパーセントエンコードと復元を行い、クエリパラメータを一覧で分解して確認できます。

正規表現テスト

正規表現のマッチ結果をハイライト表示し、キャプチャグループや置換結果をその場で確認できます。

ダミーデータ生成

氏名・住所・メールアドレス・電話番号などの架空のテストデータをCSV/JSONで一括生成します。

パスワード生成

文字種・文字数を指定して、暗号学的に安全な乱数で強力なパスワードを生成します。

ハッシュ生成

テキストやファイルからSHA-256・SHA-512・SHA-1・MD5のハッシュ値(チェックサム)を計算します。

セキュリティヘッダー簡易チェック

公開WebサイトのURLを指定し、代表的なセキュリティヘッダーの設定有無を確認します。

QRコード生成

URL・Wi-Fi・連絡先・メール・SMSのQRコードをその場で作成し、PNG/SVGでダウンロードできます。誤り訂正レベルと配色も選べます。

画像リサイズ・圧縮

画像の縦横サイズ変更・圧縮・形式変換(JPEG/PNG/WebP)をブラウザ内だけで行います。

カラーコード変換

HEX・RGB・HSLを相互変換し、背景色と文字色のコントラスト比(WCAG判定)も確認できます。

Unix時間変換

Unixタイムスタンプと日時を相互変換します。秒・ミリ秒、日本時間・UTCの両方に対応します。

UUID生成

UUID v4(完全ランダム)とUUID v7(時刻順)を、暗号学的に安全な乱数でまとめて生成します。