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フローのプロトタイピング、ドキュメント用のデモペイロード構築が あります。フォームモードでは isssubaudexpiatjti などの標準登録クレームの入力ガイドに加え、 任意のカスタムクレームもサポートしています。JSONモードではペイロード構造を 完全に制御でき、高度なシナリオに対応します。

このツールは <a href={getLocalePath(locale, "/tools/jwt-decoder")} className="text-primary underline underline-offset-2"

JWTデコーダー の補完ツールです。既存のトークンの検査と検証が可能なデコーダーと組み合わせることで、 開発者向けの完全なJWTワークフローを提供します。

使い方

  1. ヘッダーセクションから署名アルゴリズム(HS256、HS384、またはHS512)を選択します。
  2. ガイド付きクレーム入力のフォームモードか、ペイロード直接編集のJSONモードを選択します。
  3. フォームモードでは、発行者、主体、対象者などの登録クレームを入力します。有効期限のドロップダウンで相対的な有効期限(例:1時間、7日間)を設定するか、絶対日付を選択します。
  4. iat チェックボックスをオンにすると、発行日時が現在時刻に自動設定されます。jti フィールドではUUID生成ボタンでユニークなトークンIDを生成できます。
  5. 「クレームを追加」ボタンでカスタムクレームを追加します。値は自動型判定されます:数値、ブーリアン、JSONオブジェクトは自動的にパースされます。
  6. HMACシークレットキーを入力します。目のアイコンで表示/非表示を切り替えられます。
  7. 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モードに切り替えてください。

関連ツール