無料のJWTデコーダー&デバッガー
任意のJSON Web Tokenを貼り付けるだけで、ヘッダーとペイロードを即座にデコードし、 有効期限のステータスを確認し、署名を検証します(HS256、RS256、ES256、PS256などに対応)。100%クライアントサイドで処理されるため、 トークンがブラウザから外部に送信されることは決してありません。
JWTの構造
ヘッダー (Header)
署名アルゴリズム (alg) およびトークンタイプ (typ) を指定する小さなJSONオブジェクトです。これは単にデコードされているだけで暗号化されておらず、トークンを持つすべての人が見ることができます。
ペイロード (Payload)
クレーム — トークンが誰を表すか (sub) や有効期限 (exp) などの実際のデータが含まれます。これも単にエンコードされているだけなので、決して秘密の情報としては扱わないでください。
署名 (Signature)
ヘッダーとペイロードに対する暗号学的署名です。これは、トークンが本物であり変更されていないことを証明する唯一の部分であり、チェックのためにキーを必要とする唯一の部分です。
HMACまたは公開鍵による署名よくある質問 (FAQ)
JWTデコーダーは何をするものですか?
JWTデコーダーは、トークンを3つの部分(ヘッダー、ペイロード、署名)に分割し、 ヘッダーとペイロードをBase64URLデコードします。これにより、使用されているアルゴリズム、サブジェクト、 有効期限など、内部の実際のクレームやメタデータを読むことができるようになります。
JWTをデコードすることは、検証することと同じですか?
いいえ。デコードは単にトークンの可読なコンテンツを明らかにするだけであり、 シークレットキーを必要とせず、真正性について何も証明しません。検証(ベリファイ)は、署名を シークレットキーまたは公開鍵と照合し、トークンが本物であり改ざんされていないことを確認する作業です。 JWTは誰でもデコードできますが、正しいキーを持っている人だけが検証できます。
JWTをデコードするのにシークレットキーは必要ですか?
いいえ。JWTのヘッダーとペイロードは単にBase64URLエンコードされているだけで、暗号化されていません。 そのため、キーがなくても誰でもデコードして内容を読むことができます。シークレットキーや公開鍵は 署名を検証するためにのみ必要であり、可読コンテンツをデコードするためには必要ありません。
トークンのデータはサーバーに送信されますか?
いいえ。このツールは、JavaScriptとWeb Crypto APIを使用して完全にブラウザ内で動作します。 トークン、シークレットキー、および公開鍵が外部に送信されることは決してありません。ツールを使用中に ブラウザの「ネットワーク(Network)」タブを確認することで、ご自身でこれを確かめることができます。
このツールでRS256やES256のトークンを検証できますか?
はい。このデコーダーは、共有シークレットを使用するHMACアルゴリズム (HS256、HS384、HS512)と、PEM形式の公開鍵を使用する公開鍵アルゴリズム(RS256/384/512、 ES256/384/512、PS256/384/512)の署名検証をサポートしています。
トークンが有効期限切れと表示されるのはなぜですか?
JWTには通常、トークンが無効になるタイミングを示すUnixタイムスタンプである
exp クレームが含まれています。現在の時刻がそのタイムスタンプを過ぎている場合、
署名自体がまだ有効であっても、トークンは期限切れとみなされ、トークンをチェックするサーバーによって
拒否される必要があります。
alg: none とはどのような意味で、なぜ警告されるのですか?
"none" アルゴリズムは、そのトークンに署名が一切ないことを主張していることを意味します。 これはよく知られたJWTの脆弱性です — 不適切に設定された一部のライブラリは、何もチェックせずに これらのトークンを有効なものとして受け入れてしまい、攻撃者が任意のクレームを偽造できる状態にしてしまいます。 本番環境のシステムは常に無署名のトークンを拒否する必要があります。
新しいシークレットキーを作成する必要がありますか?
新しいトークンに署名するための、暗号学的に安全な新しいJWTシークレットキーを生成します — 完全無料、即座に生成可能、100%ブラウザベース。
JWTシークレットキージェネレーターへ