ESC

JWTトークンデコーダー

これはデコーダーのみです - 署名や検証は行いません。すべての処理はブラウザで行われます。データはサーバーに送信されません。

デコード結果

ヘッダー
-
ペイロード
-
登録済みクレーム
クレーム 説明
署名
-

使用例

基本的なJWTトークン

サブジェクトと名前などの基本的なユーザークレームを持つシンプルなJWT。JWT構造を理解するのに最適です。

期限切れトークン

デコーダーが有効期限状態と発行時刻のタイムスタンプをどのように表示するかを確認できる期限切れJWTトークン。

全クレームトークン

すべての標準登録済みクレームを含む包括的なJWT: iss, sub, aud, exp, nbf, iat, jti。

機能

色分けセクション

ヘッダー(青)、ペイロード(緑)、署名(赤)が読みやすいように視覚的に分離されています

有効期限検出

expクレームを現在時刻と比較してトークンが期限切れかどうかを自動的にチェックします

クレーム検査

すべての登録済みJWTクレーム(iss, sub, aud, exp, nbf, iat, jti)を人間が読める日付形式で表示します

プライバシー優先

すべてのデコードはJavaScriptを使用してブラウザ内でローカルに行われます。トークンはサーバーに送信されません

使い方

1

トークンを貼り付け

入力フィールドにJWTトークンを貼り付けます。貼り付け時に自動的にデコードされます。

2

出力を検査

色分けされたセクションでデコードされたヘッダー、ペイロード、署名を表示します。登録済みクレームと有効期限状態を確認します。

3

セクションをコピー

コピーボタンを使用して個々のセクション(ヘッダー、ペイロード、署名)をクリップボードにコピーします。

よくある質問

JSON Web Token (JWT) は、3つのBase64urlエンコードされたセクションがドットで区切られた、コンパクトなURL安全トークンです:Header.Payload.Signature。ヘッダーにはトークンの種類と署名アルゴリズム(例: {"alg":"HS256","typ":"JWT"})が含まれています。ペイロードにはクレーム — ユーザーやセッションに関する記述(例:ユーザーID、ロール、有効期限)が含まれています。署名は秘密鍵またはプライベートキーを使用してヘッダーとペイロードを結合し、改ざんを防ぎます。JWTはAPI認証、シングルサインオン (SSO)、およびステートレスなセッション管理に使用されます。

これらはJWTヘッダーの署名アルゴリズムを指します。HS256 (HMAC-SHA256) は共有秘密鍵を使用します。つまり、同じキーが署名と検証の両方に使用されます。これは、キーを持っている人なら誰でも有効なトークンを作成できることを意味します。RS256 (RSA-SHA256) は公開鍵/秘密鍵のペアを使用します。サーバーは秘密鍵で署名し、検証用に公開鍵を公開します。RS256は分散システムにおいてより安全です。なぜなら、検証者は公開鍵のみを必要とし、トークンを偽造できないからです。このデコーダーはalgフィールドを表示しますが、どちらのアルゴリズムも検証は行いません。内部の情報を読み取るだけです。

いいえ。署名の検証には、トークンに署名する際に使用された秘密鍵(HMACアルゴリズムの場合)または公開鍵(RSA/ECアルゴリズムの場合)が必要です。このツールはデコードのみを行い、ヘッダーとペイロードをBase64urlデコードして内容を表示するだけで、暗号技術的な検証は行いません。署名セクションはそのまま表示されますが、検証されません。署名の検証には、お使いのサーバー側のJWTライブラリ(Node.jsならjsonwebtoken、PythonならPyJWT、Javaならjava-jwtなど)を使用してください。

登録済みクレームは、RFC 7519で定義されている標準化されたペイロードフィールドです。7つの標準的なクレームは次の通りです:iss (issuer) — トークンを発行した主体; sub (subject) — トークンの対象者(通常はユーザーID); aud (audience) — 意図された受信者; exp (expiration time) — トークンが無効になるUnixタイムスタンプ; nbf (not before) — トークンを受け取ってはいけないUnixタイムスタンプより前の時間; iat (issued at) — トークンが作成された際のUnixタイムスタンプ; jti (JWT ID) — トークンの固有識別子。このツールは、exp、nbf、およびiatをUnixタイムスタンプから人間が読み取れる日付に変換します。

デコーダーはexpクレームを現在時刻と比較し、期限切れのトークンを明確にマークします。期限切れのトークンは、APIによって401 Unauthorizedレスポンスで拒否されます。リフレッシュトークン(認証システムがサポートしている場合)を使用して新しいアクセストークンを取得するか、再度ログインする必要があります。APIからの「expired token」エラーをデバッグしている場合、このデコーダーを使用すると、トークンがいつ期限切れになり、いつ発行されたのかを正確に確認できます。

ヘッダーのalgフィールドはデコードされた状態で表示されるため、トークンに "alg":"none" がある場合は表示されます。これは既知のJWT脆弱性です。初期の実装の中には署名のないトークン(alg:none)を受け入れていたものがあり、攻撃者が任意のペイロードを偽造できることがありました。適切に実装されたJWTライブラリは、デフォルトでalg:noneトークンを拒否します。自身のシステムから発行されたトークンにalg:noneが見られる場合は、直ちに対処が必要な重大なセキュリティバグです。

いいえ。すべてのデコードはブラウザ内でJavaScriptを使用して行われます。Base64urlデコードにはサーバー側の計算は不要です。あなたのJWTトークンに含まれるユーザーID、ロール、またはセッションデータを含む情報は、デバイスから外へ送信されることはありません。ただし、本ツールを含め、オンラインツールに本番環境のJWTトークンを貼り付ける際は注意してください。本番の認証の問題をデバッグする場合は、代わりにブラウザの開発者ツールのネットワークタブまたはログシステムを使用してください。

有効なJWTは、3つのBase64urlエンコードされたセクションを区切る正確に2つのドットを持つ必要があります。トークンにドットがない場合、それはJWTではありません。自己完結型のJWTではなく、不透明なトークン(サーバー側のルックアップが必要なランダムな識別子)である可能性があります。一部のシステムでは両方のタイプを使用しています:不透明なリフレッシュトークンとJWTアクセストークンです。「Invalid JWT format」エラーが表示される場合は、貼り付けているものがアクセストークン(「ey」で始まるはずです)であり、リフレッシュトークンではないか確認してください。

JWTデコーダーとは?

APIからJWTトークンを受け取って中身が気になる?ここに貼り付ければ、ヘッダー、ペイロード、クレームが読みやすい形式で即座に表示されます。トークンが期限切れかどうかもすぐに教えてくれます。

このJWTデコーダーを使う理由

色分けセクション(ヘッダー青、ペイロード緑、署名赤)で読みやすい。有効期限を自動検出し、Unixタイムスタンプの代わりに実際の日付で全クレームを表示。全てブラウザ内で完結 - トークンがデバイスから出ることはありません。

セキュリティとプライバシー

あなたのデータの安全を最優先しています

ローカル処理

すべての処理がブラウザ内で完結します

データ送信なし

データはサーバーに送信されません

保存しません

データは保存も共有もされません

SSL暗号化

安全な通信でご利用いただけます

次のステップ

MoreOnlineToolsでもっと見る