JWT(JSON Web Token)は Header、Payload、Signature の3部分を2つのドットで区切った形式で、API 認証、シングルサインオン、ステートレスセッションなどで広く使われています。このツールでは解析、生成、検証を同じページにまとめ、3つのタブで切り替えます。解析には鍵は不要で、生成と検証には Secret または鍵が必要です。
Token を貼り付けると3つの部分に自動分割されます。Header と Payload は Base64URL デコード後に JSON として整形され、Signature はそのまま保持されます。3つの部分はそれぞれ個別にコピーできます。alg、typ、kid などのヘッダーフィールドも読み取り、iss、sub、aud、jti などの標準クレームを認識し、iat、nbf、exp のタイムスタンプをローカル時刻へ変換します。
時刻クレームに基づいて Token 全体の状態を自動判定します。状態は有効、まもなく期限切れ、期限切れ、まだ有効ではない、または時刻クレームなしです。期限までの残り時間も表示します。ログイン状態の異常を調査するときに、Token の期限切れ、まだ有効になっていない状態、署名そのものの問題をすぐに切り分けられます。カスタムクレームは Payload JSON から直接確認できます。
生成タブでは Header と Payload の JSON を直接編集でき、整形と圧縮のボタンを利用できます。よく使うクレームもワンクリックで挿入でき、exp はデフォルトで現在時刻から1時間後に設定されます。アルゴリズムを選択して対応する鍵を入力すると Token を生成できます。HMAC 系では Secret を使用し、UTF-8 テキストとして扱うほか、0x で始まる場合は16進数として解析できます。RSA と EC 系では PEM 秘密鍵または JWK を貼り付けられます。JSON に誤りがある場合はすぐに通知されます。
12種類のアルゴリズムに対応しています。HS256、HS384、HS512、RS256、RS384、RS512、PS256、PS384、PS512、ES256、ES384、ES512 です。HS 系は HMAC 署名、RS と PS 系は RSA ベース、ES 系は ECDSA ベースです。安全なコンテキストが必要なアルゴリズムには明示的な表示があります。
検証には署名に対応する公開鍵が必要です。RSA では SPKI または PKCS#1 の公開鍵 PEM または JWK、EC では SPKI 公開鍵 PEM または JWK に対応しています。検証結果では署名が有効か、期限切れか、すでに有効な状態かを項目ごとに表示し、失敗時には具体的な理由を示します。秘密鍵を貼り付けた場合は、対応する公開鍵を使用するよう案内します。
RS、PS、ES 系はブラウザの WebCrypto API に依存します。この API は安全なコンテキストでのみ利用できるため、HTTPS 環境が必要です。HS 系にはこの制約がなく、HTTP でも生成と検証を実行できます。
Token、Secret、秘密鍵、公開鍵はすべてブラウザ内で処理されます。サーバー側の計算 API はなく、入力内容がアップロードまたは保存されることもありません。JWT の Payload は暗号化ではなく Base64URL エンコードであるため、Token を取得した人は内容を読むことができます。Payload に機密情報を入れないでください。
コメント 0