Secret 未入力のため署名は保持されます。編集後の Token は通常検証に失敗します
ツール説明
JWT デコーダー・パーサーについて
JWT パーサーは JSON Web Token の Header と Payload をデコードし、alg、typ、署名状態、iss、sub、aud、iat、nbf、exp などの一般的なクレームを確認できます。
トークンはブラウザー内で解析され、編集した Header/Payload はローカルの HMAC シークレットで再署名できます。トークンは wetool.site へ送信されません。
JWT Parser の使い方
- header.payload.signature 形式の完全な JWT を貼り付けます。
- Decode を押して Header、Payload、主要クレームの要約を確認します。
- exp、nbf、iat を確認します。通常はエポック秒です。
- HMAC テスト用トークンでは secret を入力すると、編集した Header/Payload をブラウザー内で再署名できます。
よくある利用場面
- 認証セッションのデバッグでトークンが期限切れか、まだ有効でないかかを確認する。
- alg、typ、iss、aud、sub が API ゲートウェイやバックエンドの取り決めと一致するか確認する。
- ペイロードの JSON を整形し、scope、role、tenant_id などアプリ固有のフィールドを探す。
- 開発用トークンのクレームを編集し、既知の HMAC シークレットでローカルで再署名する。
JWT の構造、クレーム、署名の限界
JWT は通常 Header、Payload、Signature の 3 つの Base64URL の各部分で構成されます。Header/Payload のデコードに secret は不要ですが、トークンを信頼するには正しい key で署名検証が必要です。
- Header: 通常 alg と typ を含み、署名アルゴリズムとトークンの種別を示します。
- Payload: iss、sub、aud、iat、nbf、exp、アプリ固有のフィールドなどのクレームを含みます。
- Signature: Header/Payload の改ざん防止に使われます。デコードしただけでは署名が有効とは言えません。
- 時刻系のクレーム:iat、nbf、exp は通常ミリ秒ではなく Unix 秒です。
JWT パーサーのよくある質問
- JWT デコードは verify と同じですか?
- 違います。デコードは Header と Payload を読むだけです。検証には、正しい秘密鍵または公開鍵で署名を確認する必要があります。
- なぜ password なしで payload が読めるのですか?
- JWT の Header と Payload は Base64URL エンコードであり、暗号化ではありません。通常の JWT ペイロードに機密情報を入れないでください。
- exp、iat、nbf とは何ですか?
- exp は有効期限、iat は発行時刻、nbf は有効化時刻を表し、多くは Unix 秒で保存されます。
- Payload を編集したトークンは使えますか?
- 通常、再署名しなければ使えません。このツールは secret 入力時に HMAC テスト用トークンをローカルで再署名できます。
- JWT はアップロードされますか?
- いいえ。デコード、編集、HMAC による再署名はブラウザー内で実行され、wetool.site へ送信されません。
JWT とセッション Cookie
セッションは通常サーバー側に状態を保存し、ブラウザーにはセッション ID を渡します。JWT はトークン内に claims を持つためサービス間で便利ですが、expiration、署名鍵、ペイロード内容の管理が重要です。
JWT の署名検証と alg のチェックリスト
JWT はデコードできても信頼できるとは限りません。実際の検証では、アルゴリズム、鍵の取得元、issuer、audience、署名ポリシーを固定して確認します。
- トークンの alg ヘッダーだけで検証アルゴリズムを選ばないでください。サーバーは設定済みの許可リストを使うべきです。
- alg=none、HS256 と RS256 の取り違え、外部の場所を指す kid は高リスクな設定として扱います。
- このツールは調査と HMAC テスト用トークンには便利ですが、本番環境での検証はバックエンドまたは認証ゲートウェイで行います。
exp、nbf、iat の時刻デバッグ
JWT の時刻系クレームは通常 Unix 秒です。有効期限が不自然な場合は、秒とミリ秒の取り違え、時計のずれ、タイムゾーン表示を先に確認します。
- exp が現在のエポック秒より前ならトークンは期限切れ、nbf が現在より後ならまだ有効になっていません。
- 13 桁のミリ秒を秒として読むと遠い未来の日付になり、10 桁の秒をミリ秒として読むと 1970 年付近になります。
- サーバーは NTP 同期を保ち、わずかな時刻のずれは許容しますが、長すぎる猶予時間で設定ミスを隠さないでください。