JWTデコーダー
JWTデコーダーは、コード整形・検証・変換を1ページで進められるツールです。入力項目の意味、実用例、結果の読み方、注意点まで確認でき、日常と業務の判断に役立ちます。
JWTデコーダー
JWTトークンを入力すると自動的にデコードされます
JWTデコーダーとは?
JWTデコーダーは、JSON Web Token(JWT)を解析してヘッダー、ペイロード、署名を確認し、トークンの有効性を検証するツールです。API認証、OAuth、SSOなどで使用されるJWTトークンを簡単に分析でき、開発およびデバッグに必須です。
トークンを貼り付けるだけで即座にデコードされ、アルゴリズム、有効期限、発行情報などすべてのクレームを視覚的に確認できます。HMACアルゴリズムの場合は、Secret Keyを入力して署名の有効性まで検証できます。
こんな場面で使用してください
- APIデバッグ – REST API認証トークンの内容を確認し、有効期限の状況をチェックするとき
- OAuth開発 – OAuth 2.0 / OpenID Connect実装時にaccess_token、id_tokenを分析
- 認証エラー解決 – “Token expired”、”Invalid signature”などの認証エラーの原因を特定
- セキュリティレビュー – JWTに含まれる機密情報の確認およびセキュリティ脆弱性のチェック
- 学習目的 – JWTの構造と動作原理を理解するための実習
- クライアント開発 – フロントエンドでのトークン解析と有効期限処理ロジックのテスト
主な機能
- リアルタイムデコード – JWT入力と同時にヘッダー、ペイロード、署名に分離してJSON形式で表示
- 有効期限検証 – exp、iat、nbfクレームを分析してトークンの有効性と残り時間を表示
- HMAC署名検証 – HS256、HS384、HS512アルゴリズムの署名をSecret Keyで検証
- クレーム詳細分析 – iss、sub、audなどの標準クレームを一目で確認
- 構文強調表示 – JSONのキー、文字列、数値、ブール値を色で区別
- 履歴保存 – 最近デコードしたJWT 5件をローカルに保存して素早く再利用
- クリップボードコピー – ヘッダー、ペイロード、署名を個別にコピー
- サンプルJWT – テスト用サンプルトークンを即座にロードして機能確認
使用方法
- JWT入力 – 左側の入力欄に分析したいJWTトークンを貼り付けます。(eyJ…で始まる文字列)
- 結果確認 – 右側にHeader(アルゴリズム)、Payload(データ)、Signature(署名)が分離されて表示されます。
- 有効期限確認 – 上部の状態カードでトークンの有効性と残り時間を確認します。
- 署名検証(任意) – HMACアルゴリズムの場合、Secret Keyを入力すると署名の有効性が表示されます。
- コピー/活用 – 各セクションのコピーボタンで必要な部分をクリップボードにコピーします。
JWT構造を理解する
JWTはドット(.)で区切られた3つの部分で構成されます:
| 構成要素 | 内容 | 例 |
|---|---|---|
| Header | アルゴリズム(alg)とトークンタイプ(typ) | {"alg":"HS256","typ":"JWT"} |
| Payload | クレーム(Claims) – トークンに含まれる情報 | {"sub":"123","name":"John"} |
| Signature | ヘッダー+ペイロードを秘密鍵で署名した値 | HMACSHA256(header.payload, secret) |
標準JWTクレーム
| クレーム | 説明 | 例 |
|---|---|---|
iss |
発行者(Issuer) | https://auth.example.com |
sub |
主体(Subject) – ユーザーID | user_12345 |
aud |
対象(Audience) – トークン受信者 | my-app |
exp |
有効期限(Expiration Time) | 1735689600(Unixタイムスタンプ) |
iat |
発行時間(Issued At) | 1735686000(Unixタイムスタンプ) |
nbf |
有効開始時間(Not Before) | 1735686000(Unixタイムスタンプ) |
jti |
トークン固有ID(JWT ID) | abc123xyz |
対応アルゴリズム
- HS256(HMAC + SHA-256) – 対称鍵アルゴリズム、最も一般的に使用される。Secret Keyで署名検証可能
- HS384(HMAC + SHA-384) – HS256より長いハッシュ、より高いセキュリティ
- HS512(HMAC + SHA-512) – 最も長いHMACハッシュ、最高のセキュリティ
- RS256、RS384、RS512 – RSA非対称鍵アルゴリズム(デコードのみ対応、署名検証未対応)
- ES256、ES384、ES512 – ECDSA楕円曲線アルゴリズム(デコードのみ対応)
※ RSA、ECDSAアルゴリズムの署名検証には公開鍵が必要であり、現在のバージョンではHMACアルゴリズムのみ署名検証に対応しています。
個人情報保護
このツールは100%ブラウザで動作します。入力したJWTトークンとSecret Keyは絶対にサーバーに送信されず、すべてのデコードと署名検証はユーザーのデバイスでのみ行われます。ブラウザを閉じるとすべてのデータが削除されます。(履歴はローカルストレージに保存され、「すべて削除」でいつでも削除可能)
詳細説明
JWTデコーダーの結果は、入力値と選択条件にもとづいて算出されます。
最終判断が必要な場合は、公式情報や専門家確認とあわせてご利用ください。
よくある質問
JWTのデコードにSecret Keyは必要ですか?
いいえ、JWTのHeaderとPayloadはBase64Urlエンコードされているだけなので、Secret Keyなしでもデコードできます。Secret Keyは署名(Signature)の検証にのみ必要です。したがって、JWTに機密情報を含めてはいけません。
トークンが期限切れと表示されますが、どうすればよいですか?
JWTのexp(有効期限)クレームが現在時刻より過去の場合、期限切れと表示されます。期限切れのトークンはサーバーで拒否されるため、リフレッシュトークンを使用するか、再度ログインして新しいトークンを発行する必要があります。
署名不一致が表示される理由は何ですか?
入力したSecret Keyがトークン発行時に使用されたキーと異なる場合、署名不一致が発生します。また、RSAやECDSAアルゴリズムの場合、このツールではHMACのみ対応しているため「HMACのみ対応」と表示されます。正確なSecret Keyを確認してください。
JWTとセッションベース認証の違いは何ですか?
セッションベース認証は、サーバーがセッション情報を保存し、CookieでセッションIDを管理します。一方、JWTはトークン自体に情報が含まれているため、サーバーが状態を保存する必要がありません(Stateless)。JWTはマイクロサービス、モバイルアプリ、SPAに適しており、セッションは従来のWebアプリケーションに適しています。
JWTにどのような情報を含めてはいけませんか?
JWTのPayloadは暗号化されておらず、エンコードされているだけなので誰でも見ることができます。したがって、パスワード、クレジットカード番号、マイナンバーなどの機密情報を絶対に含めてはいけません。ユーザーID、権限(role)、有効期限など必須情報のみを含めてください。
入力したJWTはサーバーに送信されますか?
いいえ、このツールは100%ブラウザ(クライアント)で動作します。入力したJWTとSecret Keyはサーバーに送信されず、すべてのデコードと検証はJavaScriptでブラウザ内でのみ処理されます。ネットワークタブで直接確認できます。
まだコメントはありません。最初の意見を残してください。