ブラウザ内で処理

JWTデコーダー:トークンのヘッダー・ペイロード・有効期限を確認

トークン全体を貼り付けるか、.txt / .jwt ファイルを選ぶと、3つのセグメントに分けて表示します。ヘッダーとペイロードはBase64urlからデコードしたうえで厳密なUTF-8と厳密なJSONとして解析し、デコード結果をそのまま表示します。コピーや .header.json / .payload.json としてのダウンロードも可能です。ヘッダーの alg・typ・cty・kid・jku・x5u は個別の行に、ペイロードの iss・sub・aud・exp・nbf・iat・jti は標準クレームとして並びます。exp・nbf・iat は元の数値とUTC日時の両方で示し、端末の時計を基準に期限切れか、まだ有効期間前かを判定します。全クレームの表では値を原文どおり表示するため、大きな整数の桁も失われません。署名セグメントはBase64urlとしての形式とバイト数だけを確認し、テキストとしては一切デコードしません。

対応形式: .txt, .jwt処理場所: このブラウザ

またはファイルをここにドロップ

✓ この端末内で処理します上限:977 KB
使い方

JWTデコーダー:トークンのヘッダー・ペイロード・有効期限を確認の使い方

01

ファイルを渡す

.txtまたは.jwt ファイルを選ぶか、ここにドロップします。内容を貼り付けても構いません。

02

処理を待つ

ファイルはこのブラウザ内で読み込んで解析します。サーバーには送りません。

03

結果を確かめて使う

出てきた内容を確かめてから、コピーやダウンロードに進みます。

よくある質問

JWTをオンラインでデコードしてペイロードを確認するには?

トークン全体を入力欄に貼るか .txt / .jwt ファイルを選べば、ヘッダーとペイロードのJSONがすぐ表示されます。前後の空白や改行は自動で取り除かれ、結果の最上部には署名未検証の注意が常に出ます。

JWTをデコードするとトークンはサーバーにアップロードされますか?

いいえ、デコードはブラウザのタブ内で行われ、このツールがトークンを送信することはありません。ヘッダーに jku や x5u のURLがあっても、警告付きで表示するだけで、そのURLには接続しません。

MacでJWTの中身をターミナルを使わずに確認できますか?

はい、MacのSafariやChromeでこのページを開いて貼り付けるだけで中身を確認できます。base64コマンドやjq、拡張機能は不要です。Windows、Linux、スマートフォンのブラウザでも同じように使えます。

JWTのデコードでセグメント数が正しくないと出る原因は?

署名付きJWTはドット2つで区切られた3つの部分で構成され、ドットの過不足があるとこのエラーになります。コピー時に署名部分が切れた、2つのトークンをつなげて貼った、が典型的な原因です。ちょうど5つならJWE用の別メッセージが出ます。

JWTのペイロードが正しいJSONではないと表示されたらどうすればいいですか?

Base64urlのデコードは成功したものの、中身が厳密なJSONではないという意味で、テキストとして無理に表示はしません。シングルクォート、末尾のカンマ、不正なエスケープが主な原因です。配列や文字列の場合は「オブジェクトではない」という別のエラーになります。

Bearer付きでJWTを貼るとBase64urlの不正文字エラーになるのはなぜ?

Bearerという語と後ろの空白はBase64urlの文字ではないため、最初のセグメントがデコードできません。エラーには問題の文字の行と列が表示されるので、接頭辞や引用符、途中の改行を消してトークン本体だけを貼り直してください。

JWTデコーダーで扱えるサイズと文字コードの上限は?

上限は1,000,000バイト、ファイルはUTF-8のみ、JSONの入れ子は64階層までです。サイズはデコード前に確認されます。UTF-16で保存したファイルはUTF-8ではないとして拒否され、ファイル先頭のBOMは自動で除去されます。

JWTとJWEの違いは?暗号化されたJWEトークンもデコードできますか?

できません。3部構成の署名付きトークン(JWS)だけを読み、5部構成のJWEは専用メッセージで拒否します。JWSのペイロードはエンコードされているだけで誰でも読めますが、JWEは暗号化されており対応する復号鍵がないと読めません。

JWTがデコードできれば署名も検証済みで本物と言えますか?

言えません。このツールは署名を一切検証せず鍵も受け付けないので、きれいにデコードできても真正性の証明にはなりません。誰でも正しくデコードできるJWTを作れます。信頼してよいかは鍵を持つサーバー側で判断する必要があります。

JWTのalgがnoneになっているのは危険ですか?

危険です。alg none は署名なしを宣言しており、これを受け入れるサーバーではなりすましが可能になります。大文字小文字を問わず none を検出すると重大レベルの警告を表示するので、検証処理で確実に拒否してください。

JWTの有効期限expを日時に変換すると期限切れ判定は正確ですか?

exp・iat・nbfは1970年からの秒数として読みUTC日時を元の数値と並べて表示し、期限切れは端末の時計で判定します。時計がずれていれば判定もずれます。expがない場合は欠落を警告し、無期限に有効とは扱いません。