JWT デコーダー無料・登録不要
JWT トークンを Header / Payload / Signature 3 部分にデコード。exp / iat / nbf を JST に自動変換 + 有効期限判定。ブラウザ完結で本番トークンも安全。
入力した JWT は あなたのブラウザ内でのみデコードされます。サーバーへの送信・保存・ログ記録は一切ありません。本番環境の機密トークンも安心して貼り付け可能です。
主要クレーム(RFC 7519)
- iss: 発行者(Issuer)/ sub: 主体(Subject・ユーザー ID 等)/ aud: 受信者(Audience)
- exp: 有効期限(Unix 秒)/ nbf: 有効開始時刻 / iat: 発行時刻 / jti: トークン ID
- alg ヘッダ: HS256(HMAC + 共有鍵)/ RS256(RSA + 公開鍵)/ ES256(楕円曲線)/ none(署名なし・本番禁止)
良いJWT デコーダーの判断基準
API のデバッグや認証エラーの調査でトークンの中身を確認したい時は、本ツールでデコードした結果を下の判断基準と照らして読み解いてください。大前提として、デコードは「中身を読む」操作であって「正しいトークンだと確かめる」操作ではありません。
デコードと署名検証は別だと理解しているか
デコードで中身が読めることと、そのトークンが改ざんされていないことは別問題です。トークンの正当性はサーバー側の署名検証で確認するものなので、デコード結果だけを根拠に信用しないでください。
exp(有効期限)を確認したか
認証エラーの調査では、まず有効期限が切れていないかを見ます。期限切れならトークンの再取得で解決することが多く、それ以外の原因を調べる前に切り分けられます。
発行元・宛先・ユーザーは想定通りか
iss(発行者)・aud(宛先)・sub(ユーザー識別子)が、自分のシステムで想定している値と一致するかを確認します。別環境のトークンを取り違えているケースはここで見つかります。
Payload に機密情報が入っていないか
Payload はデコードすれば誰でも読めます。自分が設計する側なら、パスワードなどの秘匿すべき情報を Payload に入れていないかを、このツールで実際にデコードして確かめます。
alg(署名アルゴリズム)を確認したか
Header の alg が自分のシステムで想定しているものと一致するかを見ます。署名なしを意味する値が本番のトークンに現れるのは異常なので、検証側の設定を見直します。詳細な扱いは利用しているライブラリのドキュメントで確認してください。
トークンの貼り付け先は安全か
本番のトークンは、それ自体が認証に使える機密情報です。貼り付け先のツールがサーバーに送信しない(ブラウザ内で完結する)ことを確認してから使います。
ありがちな失敗例(NG → 改善)
NGデコードして中身が読めたので「正しいトークンだ」と判断して処理を進める。
改善中身の確認はデコードで行い、トークンの正当性はサーバー側の署名検証で確認する。
→ デコードは単なる変換で、誰でも好きな内容のトークン風文字列を作れます。検証なしで信用すると改ざんに気づけません。
NGパスワードや秘密の値を Payload に入れて「トークンの中だから安全」と考える。
改善Payload には読まれても問題ない情報だけを入れ、秘匿が必要な情報は含めない設計にする。
→ Payload は暗号化されておらず、デコードすれば誰でも読めます。署名は改ざん検知のためのもので、中身を隠す仕組みではありません。
NG本番環境のトークンを、データの送信先が不明な外部ツールに貼り付ける。
改善ブラウザ内で完結しサーバー送信しないツールかを確認してから貼る。判断できない場合は本番トークンを使わない。
→ トークンが漏れると、有効期限内はそのまま本人になりすました API アクセスに使われ得ます。
JWT デコーダーの使い方
- 1テキストを入力またはペーストします
- 2「変換する」ボタンをクリックします
- 3結果を確認してコピーします
よくある質問
JWT デコーダーは無料ですか?
はい、完全無料でご利用いただけます。会員登録も不要です。
スマートフォンでも使えますか?
はい、スマートフォン・タブレット・PCなど、ブラウザがあればどのデバイスでもご利用いただけます。
入力したコードやデータは安全ですか?
はい、入力データはブラウザ上で処理され、サーバーに送信されません。安心してご利用ください。
関連ツール
JWT デコーダーについて
JWT デコーダーが解決する課題
JWT(JSON Web Token)は API 認証・OAuth・OpenID Connect で標準利用されているトークン形式ですが、`eyJhbGciOiJIUzI1NiI...` のような文字列だけ見ても中身は分かりません。jwt.io のようなオンラインデコーダーが定番ですが、英語 UI で「本番環境のトークンを外国のサーバーに貼り付けて大丈夫か」とセキュリティ判断に迷う場面もあります。本ツールは Header / Payload / Signature の 3 セグメントを日本語 UI でデコード + exp / iat / nbf を JST に自動変換 + 有効期限判定。完全にブラウザ内で完結し、サーバー送信は一切行いません。
JWT の 3 セグメント構造
JWT は `header.payload.signature` の 3 部分をピリオドで連結した文字列です。
【Header】署名アルゴリズム(alg)とタイプ(typ)を含む JSON。例: `{"alg":"HS256","typ":"JWT"}`
【Payload】クレーム(claims)と呼ばれるトークン本体の JSON。標準クレーム + 独自クレームを格納。
【Signature】Header + Payload を秘密鍵で署名した結果。改ざん検知に使用。
各セグメントは Base64URL エンコード(標準 Base64 から +/= を -_ に置換)されて連結されます。
主要クレーム(RFC 7519)
【iss】Issuer(発行者)= 認証サーバー URL 等 【sub】Subject(主体)= ユーザー ID 等 【aud】Audience(受信者)= API クライアント ID 等 【exp】Expiration Time = 有効期限(Unix 秒) 【nbf】Not Before = 有効開始時刻(Unix 秒) 【iat】Issued At = 発行時刻(Unix 秒) 【jti】JWT ID = トークン一意 ID
独自クレームは `name` / `email` / `role` / `scope` 等が一般的(RFC 8693 / OAuth 2.0 で予約語あり)。
こんなシーンで使えます
【1. API デバッグ】Authorization ヘッダの Bearer トークンが正しく送信されているか確認 + ユーザー ID / 権限 / 発行時刻を即チェック。
【2. 期限切れ判定】テストで「401 Unauthorized」が出た時、トークンの exp が過ぎていないかをワンクリック確認。
【3. OAuth / OIDC 連携検証】Auth0 / Cognito / Firebase / Supabase 等が発行する ID Token の中身を見て、scope / aud / iss が想定通りか確認。
【4. JWT 学習】Udemy / Zenn / Qiita で JWT を学ぶ際に、サンプルトークンの中身をビジュアルに理解できる。
【5. インシデント調査】不正トークン疑いの解析時、iss / sub / iat / exp を即可視化して攻撃シナリオを判別。
署名アルゴリズム別の特徴
【HS256】HMAC + SHA-256。共有秘密鍵方式(対称鍵)。検証側も発行側と同じ鍵を持つ必要あり。マイクロサービス内通信向き。
【RS256】RSA + SHA-256。公開鍵方式(非対称鍵)。発行者のみ秘密鍵を持ち、検証者は公開鍵で署名確認。OAuth / OIDC で標準。
【ES256】楕円曲線(ECDSA + P-256)+ SHA-256。RS256 と同じ公開鍵方式だが、鍵サイズが小さく署名も短い。WebAuthn / FIDO2 でも採用。
【none】署名なし。脆弱性事故が多発したため本番禁止。jwt.io / 各種ライブラリで明示的に拒否設定すべき。
よくある失敗と注意点
1つ目: JWT は「暗号化」ではなく「署名」 → Payload は Base64URL デコードすれば誰でも読める。パスワード等の機密情報を Payload に入れてはいけない(暗号化したい場合は JWE を使う)。
2つ目: alg = none を許可してしまう → 攻撃者が任意の Payload で署名なし JWT を作れる。ライブラリ設定で必ず許可アルゴリズムを明示。
3つ目: exp を見ずに使う → サーバー側で必ず exp 検証。クライアント側のチェックは UX 向上目的のみ。
4つ目: HS256 の秘密鍵をフロントエンドに置く → 即漏洩。HS256 はバックエンド完結用。フロントから検証するなら RS256 / ES256 の公開鍵方式。
5つ目: アルゴリズム confusion 攻撃 → RS256 想定のサーバーに HS256 + 公開鍵を秘密鍵として送って署名偽造する古典脆弱性。ライブラリの最新バージョン使用 + alg を allowlist で固定。
他のツールとの違い
jwt.io(auth0 製)は英語 UI で世界標準ですが、本番トークンを外国サーバーに送るかの判断が必要です。本ツールは:
【完全クライアントサイド】サーバー送信ゼロ・ログ記録なし・本番機密トークンも安全 【日本語 UI】alg / typ / exp 等の用語に日本語ラベル併記 【時刻クレーム自動変換】exp / iat / nbf の Unix 秒を JST 日時 + 「〇分前 / 〇時間後」相対時間に自動表示 【有効期限即判定】緑(有効)/ 赤(期限切れ)/ 黄(nbf 未到来)でカラー表示 【無料・登録不要・広告なし】