JWTデコーダー・署名検証ツール
JSON Web Tokenを貼り付けると、ヘッダーとペイロード、各クレームの意味、有効期限がわかります。シークレットや公開鍵を入れれば署名も検証できます。処理はすべてブラウザ内で行われ、トークンが端末の外に出ることはありません。
無料・登録不要
使い方
- 「エンコード済みトークン」欄にJWTを貼り付けます。先頭の「Bearer 」は自動で取り除かれます。
- デコードされたヘッダーとペイロードを確認します。各クレームの説明が表示され、expやiatなどの日時はお住まいのタイムゾーンで表示されます。
- 有効期限の行で、トークンが有効か、期限切れか、まだ有効でないかを確認します。
- 署名を検証するには、HS256・HS384・HS512なら共有シークレットを、RS・PS・ES・EdDSAなら公開鍵かJWKSを入力します。
このツールの特長
すぐにデコード
貼り付けた瞬間にヘッダーとペイロードをデコードし、色分けしたJSONとトークンの3部分を表示します。
クレームをわかりやすく
標準クレームとよく使われるOpenID Connectのクレームを説明し、タイムスタンプを読みやすい日時に変換します。
有効期限チェック
有効か、期限切れか、まだ有効でないか、あとどれくらいで切れるかがひと目でわかります。
署名検証
HS256/384/512、RS256/384/512、PS256/384/512、ES256/384/512、EdDSAをシークレット、PEM鍵、JWK、JWKSで検証できます。
プライバシー重視
デコードも検証もブラウザ内蔵の暗号機能で行い、トークンや鍵を送信・保存しません。
わかりやすいエラー
途中で切れたトークン、不正なBase64、暗号化されたJWE、alg none、種類の違う鍵などをはっきり知らせます。
JWTとは
JSON Web Token(JWT、RFC 7519)は、ユーザーが誰かといった署名付きの情報をシステム間でコンパクトに受け渡す仕組みです。ドットで区切られた3つのBase64url部分からなり、アルゴリズムを示すヘッダー、クレームを含むペイロード、そして署名で構成されます。
ヘッダーとペイロードはエンコードされているだけで暗号化されていません。トークンを持っていれば誰でも読めるので、このデコーダーで中身を確認できます。JWTを信頼できるものにするのは署名で、鍵を持つ者が作成し改ざんされていないことを証明します。
主な署名アルゴリズム
| アルゴリズム | 鍵の種類 | 検証に使うもの |
|---|---|---|
| HS256 / HS384 / HS512 | 共有シークレット(HMAC) | 署名に使ったのと同じシークレット |
| RS256 / RS384 / RS512 | RSA鍵ペア | 発行者のRSA公開鍵 |
| PS256 / PS384 / PS512 | RSA鍵ペア(PSSパディング) | 発行者のRSA公開鍵 |
| ES256 / ES384 / ES512 | 楕円曲線鍵ペア | 発行者のEC公開鍵 |
| EdDSA | Ed25519鍵ペア | 発行者のEd25519公開鍵 |
公開鍵の入手場所
Auth0、Okta、Microsoft Entra ID、Google、Keycloakなどの認証基盤は鍵をJWKSとして公開しています。プロバイダーの/.well-known/openid-configurationを開き、jwks_uriのリンク先のJSONを丸ごとここに貼り付けてください。トークンのヘッダーとkidが一致する鍵が自動で選ばれます。
セキュリティのヒント
- 本番のトークンやシークレットを、データをサーバーに送るツールに貼り付けないでください。このページは読み込み後オフラインでも動きます。
- トークンを持つ人は誰でも読めるので、ペイロードにパスワードなどの秘密情報を入れないでください。
- トークンを信頼する前に、必ずサーバー側で署名、発行者、受信者、有効期限を検証してください。
- alg noneのトークンは拒否し、期待するアルゴリズムはトークンから読まずにコードで固定してください。
よくある質問
ここにJWTを貼り付けても安全ですか?
はい。トークンはブラウザ内のJavaScriptでデコード・検証され、アップロード、記録、保存はされません。ただし有効なトークンはパスワードと同様に扱い、共有しないでください。
シークレットなしでJWTをデコードできますか?
はい。ヘッダーとペイロードはBase64urlでエンコードされたJSONなので誰でも読めます。シークレットや鍵が必要なのは、署名の検証や新しいトークンの作成のときだけです。
署名が無効と表示されるのはなぜ?
署名に使われた鍵と違う、トークンが改ざんされている、またはシークレットがBase64なのに該当オプションにチェックがない、などが原因です。RS・ESのトークンでは、正しいkidの発行者公開鍵を使ってください。
JWTのexpとは?
expは有効期限で、秒単位のUnixタイムスタンプです。この時刻を過ぎたトークンは拒否すべきです。iatは発行日時、nbfはそれより前に受け入れてはいけない日時です。
暗号化されたトークン(JWE)もデコードできますか?
5つの部分からなるJWEを識別してヘッダーを表示します。ペイロードは暗号化されており、受信者の秘密鍵でしか読めません。
HS256とRS256の違いは?
HS256は署名と検証に同じ共有シークレットを使うため、検証するすべてのサービスがシークレットを知る必要があります。RS256は秘密鍵で署名し公開鍵で検証するので、公開鍵は安全に共有できます。
関連ツール
作りたいものがありますか?
作りたい内容を教えてください。
シンプルなWebサイトから本格的なアプリ、AIソリューション、自動化、カスタムシステムまで、作りたいものをお聞かせください。