JWT デコーダー / インスペクター / バリデーター

JWTトークンをデコード・検証 — ヘッダー、ペイロード、クレーム、HMAC署名。 すべてブラウザ内で処理されます

JWTトークン 0 文字
サンプル:
このトークンはデコード済みですが署名検証はされていません。デコードは信頼性を証明しません — 誰でも任意のペイロードでJWTを作成できます。
ヘッダー

                    
ペイロード

                
時刻ステータス
署名
クレーム
クレーム 意味 Status
警告
上にJWTトークンを貼り付けて「デコード」をクリックすると、内容を確認できます。
検証では構造、フォーマット、時刻クレームを確認します。暗号署名の検証は行いません。署名検証には「署名検証」タブを使用してください。
上にJWTトークンを貼り付けると、構造とクレームを検証します。

RSAおよびEC署名検証

RSAおよびEC署名検証にはWeb Crypto APIを介した公開鍵のインポートが必要です。この機能は将来のアップデートで追加予定です。

HMACベースのトークン(HS256、HS384、HS512)については、HMACシークレットオプションで完全な署名検証が利用可能です。

RSAおよびEC署名検証

RSAおよびEC署名検証にはWeb Crypto APIを介した公開鍵のインポートが必要です。この機能は将来のアップデートで追加予定です。

HMACベースのトークン(HS256、HS384、HS512)については、HMACシークレットオプションで完全な署名検証が利用可能です。

JWTとは何ですか?

JSON Webトークン(JWT)は、当事者間で情報を安全に伝達するためのコンパクトでURLセーフなトークン形式です。ドットで区切られた3つのBase64URLエンコード部分で構成されます。

eyJhbGci...(ヘッダー).eyJzdWIi...(ペイロード).SflKxwRJ...(署名)

ヘッダー

ヘッダーには通常、署名アルゴリズム(alg)とトークンタイプ(typ)の2つのフィールドが含まれます。

{"alg": "HS256", "typ": "JWT"}

ペイロード(クレーム)

ペイロードにはクレーム(ユーザーやメタデータに関する記述)が含まれます。標準クレームは以下の通りです:

クレームName説明
iss発行者トークンの発行者
subサブジェクトトークンの対象者
audオーディエンストークンの意図された受信者
exp有効期限トークンの有効期限(Unix秒タイムスタンプ)
nbf有効開始日時この時刻以前はトークンが無効
iat発行日時トークンの作成日時
jtiJWT IDトークンの一意識別子

署名

署名はヘッダーとペイロードをエンコードし、ドットで結合した後、ヘッダーで指定されたアルゴリズムで署名して作成されます。

HMAC-SHA256(
  base64UrlEncode(header) + "." + base64UrlEncode(payload),
  secret
)

よくある誤解

"JWTs are encrypted" — Standard JWTs (JWS) are only signed, not encrypted. The payload can be read by anyone who has the token.
"Decoding a JWT means it's trusted" — Decoding only reads the content. Without signature verification, the token could have been tampered with.
"alg: none is harmless" — The none algorithm means no signature. Accepting it can allow attackers to forge tokens. Always reject alg: none in production.

セキュリティのベストプラクティス

クレームを信頼する前に必ず署名を検証する
exp、nbf、iatクレームで時間的有効性を確認する
発行者(iss)とオーディエンス(aud)クレームを検証する
ペイロードに機密データ(パスワード、クレジットカード)を保存しない
HMACには強力なシークレットを使用し、定期的にキーをローテーションする
公開APIには非対称アルゴリズム(RS256、ES256)を優先する
すべてのデコード、検証、署名検証はブラウザ内で行われます。JWTやシークレットがサーバーに送信されることはありません。

Tips

デコードは信頼を意味しない

誰でもJWTをデコードできます — Base64URLは暗号化ではありません。デコードは内容を明らかにしますが、署名検証のみがトークンの改ざんがないことを証明します。

使用前に有効期限を確認

exp(有効期限)クレームはUnix秒タイムスタンプです。トークンを信頼する前に、常に未来の日時であることを確認してください。このツールは時刻ステータスを即座に表示します。

alg: noneはセキュリティリスク

"none"アルゴリズムはトークンに署名がないことを意味します。本番環境でこれを受け入れると、攻撃者がトークンを偽造できます。サーバーでは必ずalg: noneを拒否してください。

JWTはデフォルトで暗号化されていない

標準JWT(JWS)は署名のみで暗号化されていません。ペイロードはトークンを持つ誰でも読めます。JWTペイロードにパスワード、クレジットカード番号、その他の機密情報を保存しないでください。

よくある使い方

🔌

APIデバッグ

APIレスポンスのアクセストークンを貼り付けて、クレームの確認、有効期限のチェック、発行者の検証をブラウザから離れずに素早く行えます。

🔐

認証フローテスト

OAuth2やOpenID Connectフローの各ステップでトークンをデコードし、正しいスコープ、オーディエンス、クレームが存在するか確認できます。

⏱️

トークン有効期限モニタリング

トークンの有効期限を確認してセッションタイムアウトの問題をデバッグ。「14分後に期限切れ」のような人間が読める時間差を表示します。

⚙️

CI/CDパイプライン検証

デプロイ前にサービス間トークンに期待されるクレームが含まれていることを確認。パイプラインログのトークンを貼り付けて検査できます。

🛡️

セキュリティ監査

トークンの機密データ漏洩(ペイロード内のPII)、弱いアルゴリズム(alg: none)、セキュリティクレームの欠如(exp、aud、iss)を検査できます。

よくある質問

JWTとは何ですか?
JSON Webトークン(JWT)は、JSON形式で当事者間に情報を伝達するためのコンパクトでURLセーフなフォーマットです。ドットで区切られたBase64URLエンコード済みの3つの部分(ヘッダー、ペイロード、署名)で構成されます。
JWTは暗号化されていますか?
標準JWT(JWS — JSON Web Signature)は署名されていますが暗号化されていません。ペイロードは誰でも読めます。JWE(JSON Web Encryption)トークンは暗号化されていますが、3セグメントではなく5セグメントの異なる形式です。
デコードしたJWTは信頼できますか?
いいえ。デコードは内容を表示するだけで、信頼性を検証しません。誰でも任意のペイロードでJWTを作成できます。クレームを信頼するには暗号署名を検証する必要があります。
デコードと検証の違いは何ですか?
デコードはBase64URLエンコードされたヘッダーとペイロードを読み取ります。検証は暗号署名を確認し、トークンが信頼できる発行者によって発行され、改ざんされていないことを確認します。信頼する前に必ず検証してください。
トークンが期限切れと表示されるのはなぜですか?
expクレームはUnix秒タイムスタンプです。この時刻が過去の場合、トークンは期限切れです。expの値を確認し、現在時刻と比較してください。タイムゾーンの違いは影響しません — Unixタイムスタンプは常にUTCです。
algフィールドの意味は?
ヘッダーのalg(アルゴリズム)フィールドは、トークンの署名に使用する暗号アルゴリズムを指定します。一般的な値:HS256(HMAC with SHA-256)、RS256(RSA with SHA-256)、ES256(ECDSA with P-256 and SHA-256)。
Base64URLエンコーディングとは?
Base64URLはBase64の変種で、+を-に、/を_に置き換え、パディング(=)を除去します。これにより出力がURLやファイル名に安全になります。JWTはヘッダーとペイロードの両セグメントにBase64URLを使用します。
トークンやシークレットはサーバーに送信されますか?
いいえ。すべてのデコード、検証、署名検証はJavaScriptとWeb Crypto APIを使用してブラウザ内で完全に行われます。JWTやシークレットがデバイスの外に出ることはありません。
HS256トークンをここで検証できますか?
はい。このツールはWeb Crypto APIを使用してHMAC署名検証(HS256、HS384、HS512)を完全にサポートしています。署名検証タブでシークレットを入力して署名の有効性を確認できます。
JWEトークンはなぜサポートされていないのですか?
JWE(JSON Web Encryption)トークンは5つのセグメントを持ち、ペイロードの読み取りに復号キーが必要です。このツールは3セグメントのJWS(署名済み)トークンに特化しています。JWEサポートは将来のアップデートで追加される可能性があります。