JWT生成ツール
カスタムペイロードとHMAC署名で署名済みJSON Web Tokenを生成。クレームの設定、有効期限の指定、署名済みJWTのコピーが可能です。
このツールについて
JWT生成ツールは、ブラウザ内で直接署名済みのJSON Web Tokenを作成します。 JWTはWebアプリケーションにおいてパーティ間でクレームを安全に送信するための 業界標準メソッドです。 <a href="https://datatracker.ietf.org/doc/html/rfc7519" className="text-primary underline underline-offset-2" target="_blank" rel="noopener noreferrer"
RFC 7519 で定義されており、ドット区切りの3つのBase64urlエンコードされたパーツで構成されます: アルゴリズムとトークンタイプを指定する ヘッダー、 クレームを含む ペイロード、 トークンが改竄されていないことを検証する 署名です。
このツールはWeb Crypto APIを使用したHS256、HS384、HS512アルゴリズムによる HMACベースの署名をサポートしています。HMAC(Hash-based Message Authentication Code)は共有シークレットキーを使用して署名を生成します。シークレットはエンコード されたヘッダーとペイロードと組み合わされ、真正性の証明となる暗号ハッシュを生成 します。受信者がトークンを受け取ると、同じシークレットを使用して署名を再計算し、 トークンの整合性を検証できます。
一般的なユースケースには、開発中のAPI認証用トークン生成、統合テスト用のテストJWT
作成、OAuth 2.0フローのプロトタイピング、ドキュメント用のデモペイロード構築が
あります。フォームモードでは iss、sub、aud、exp、
iat、jti などの標準登録クレームの入力ガイドに加え、
任意のカスタムクレームもサポートしています。JSONモードではペイロード構造を
完全に制御でき、高度なシナリオに対応します。
このツールは <a href={getLocalePath(locale, "/tools/jwt-decoder")} className="text-primary underline underline-offset-2"
JWTデコーダー の補完ツールです。既存のトークンの検査と検証が可能なデコーダーと組み合わせることで、 開発者向けの完全なJWTワークフローを提供します。
使い方
- ヘッダーセクションから署名アルゴリズム(HS256、HS384、またはHS512)を選択します。
- ガイド付きクレーム入力のフォームモードか、ペイロード直接編集のJSONモードを選択します。
- フォームモードでは、発行者、主体、対象者などの登録クレームを入力します。有効期限のドロップダウンで相対的な有効期限(例:1時間、7日間)を設定するか、絶対日付を選択します。
iatチェックボックスをオンにすると、発行日時が現在時刻に自動設定されます。jtiフィールドではUUID生成ボタンでユニークなトークンIDを生成できます。- 「クレームを追加」ボタンでカスタムクレームを追加します。値は自動型判定されます:数値、ブーリアン、JSONオブジェクトは自動的にパースされます。
- HMACシークレットキーを入力します。目のアイコンで表示/非表示を切り替えられます。
- Generate JWTをクリックするかCtrl+Enterを押します。右側に色分けされたパーツとデコードプレビュー付きの署名済みトークンが表示されます。
よくある質問
データは安全ですか?シークレットがブラウザ外に漏れませんか?
はい、このツールは完全にクライアントサイドで動作します。シークレットキー、ペイロードデータ、生成されたJWTがブラウザ外に送信されることはありません。すべての署名はブラウザ組み込みのWeb Crypto APIを使用してローカルで実行されます。サーバーへのデータ送信、保存、ログ記録は一切行われません。
HS256、HS384、HS512の違いは何ですか?
3つともシークレットキーを共有するHMACアルゴリズムです。基礎となるSHAハッシュ関数が異なります:HS256はSHA-256(256ビット)、HS384はSHA-384(384ビット)、HS512はSHA-512(512ビット)を使用します。ハッシュが長いほどセキュリティビットが増えますが、署名もやや長くなります。HS256が最も一般的に使用され、ほとんどのアプリケーションに適しています。
RSAやECDSA署名のJWTを生成できますか?
このツールは現在HMAC(対称鍵)署名のみをサポートしています。RSA(RS256、RS384、RS512)やECDSA(ES256、ES384、ES512)は公開鍵/秘密鍵ペアが必要で、複雑さが増します。HMAC署名は開発やテストのユースケースの大部分をカバーしています。
登録クレームとは何ですか?
登録クレームはJWT仕様(RFC 7519)で事前定義されており、特定の意味を持ちます:iss(発行者)、sub(主体)、aud(対象者)、exp(有効期限)、nbf(有効開始日時)、iat(発行日時)、jti(JWT ID)。いずれも必須ではありませんが、使用することでJWTライブラリやフレームワークとの相互運用性が確保されます。
生成したJWTを本番環境で使用すべきですか?
このツールは開発、テスト、学習用に設計されています。本番環境では、安全に管理された鍵を使用して認証サーバーでJWTを生成すべきです。ここで作成されるトークンは暗号的に有効ですが、本番システムには適切な鍵管理、ローテーションポリシー、ブラウザベースのツールでは提供できないインフラが必要です。
生成したJWTを検証するには?
生成されたJWTをコピーしてJWTデコーダーに貼り付けてください。署名に使用したものと同じシークレットキーを入力し、Verifyをクリックします。任意のJWTライブラリ(Node.js用のjsonwebtoken、Python用のPyJWT、Go用のgolang-jwtなど)を使用してプログラムで検証することもできます。
カスタムクレームの値はどのフォーマットを使うべきですか?
カスタムクレームの値は自動型判定されます。数値(例:42)、ブーリアン(true/false)、null、有効なJSONオブジェクトや配列はネイティブ型にパースされます。それ以外はすべて文字列として扱われます。完全な制御が必要な場合は、ペイロードを直接記述するJSONモードに切り替えてください。