JWT生成ツール|トークン作成

HS256でJWTトークンを生成します。ヘッダー・ペイロード・秘密鍵を指定して生成。

⚠ 開発・テスト用途のみ。本番環境の秘密鍵は使用しないでください。
アルゴリズム
署名鍵

ペイロード

カスタムクレーム
ヘッダー
ペイロード
署名
生成されたJWT
署名鍵を入力してください
🔒 署名鍵はブラウザ内でのみ使用され、送信されません

JWT生成ツール|トークン作成とは

JWTトークン(JSON Web Token)をHS256署名でブラウザ上で生成できる無料開発ツールです。ペイロードのJSONと秘密鍵を入力するだけで即時生成できます。JWT認証の学習・開発環境でのテストトークン作成・APIデバッグに活用できます。

使い方

  1. 1ペイロードのJSONを入力エリアに入力してください(例: {"sub": "user123", "exp": 1735689600})。
  2. 2秘密鍵(シークレット)を入力してください。開発環境用のテスト用キーを使用してください。
  3. 3「JWTを生成」をクリックするとHS256署名のJWTトークンが即時生成されます。生成されたトークンをコピーして使用してください。

メリット・特徴

  • HS256(HMAC-SHA256)署名のJWTトークンをブラウザ上で即時生成
  • exp・iat・sub・issなど標準クレームを含む任意のペイロードJSONに対応
  • テスト用JWTトークンの素早い生成でAPI開発・デバッグ作業を効率化
  • 入力データはブラウザ内のみで処理、サーバーに送信されない
  • 登録不要・インストール不要の完全無料ツール
  • JWT decoder(デコードツール)と組み合わせてトークンの検証にも活用可能
01

JWTの仕組みと構造——ヘッダー・ペイロード・署名

JWT(JSON Web Token)はWebアプリの認証・認可で最も広く使われるトークン形式です。その構造と動作原理を理解することで、安全で適切なJWT実装が可能になります。

JWTの3層構造

JWTは「ヘッダー.ペイロード.署名」の3部分をBase64URLエンコードしてドット(.)で連結した文字列です。ヘッダーには署名アルゴリズム(alg: "HS256")とトークンタイプ(typ: "JWT")が含まれます。ペイロードには認証情報(ユーザーID・権限など)とメタデータ(有効期限・発行日時など)をJSONで記述します。署名は秘密鍵を使ってヘッダーとペイロードから生成され、改ざん検出に使われます。

HS256(HMAC-SHA256)署名の仕組み

HS256は対称鍵アルゴリズムで、同じ秘密鍵で署名と検証の両方を行います。HMAC(Hash-based Message Authentication Code)とSHA-256ハッシュ関数を組み合わせて署名を生成します。署名者(サーバー)と検証者(同じサーバー)が同じ秘密鍵を持つ必要があるため、マイクロサービス間の信頼や外部への公開には向いていません。外部に公開する場合はRS256(公開鍵で検証できる非対称アルゴリズム)が適しています。

JWT標準クレーム(RFC 7519)一覧

RFC 7519で定義された主要な標準クレームを紹介します。iss(Issuer)はトークン発行者、sub(Subject)はトークンの主体(ユーザーID等)、aud(Audience)は対象受信者、exp(Expiration Time)はUnixタイムスタンプ形式の有効期限、nbf(Not Before)は有効開始時刻、iat(Issued At)は発行日時、jti(JWT ID)はトークンの一意識別子です。標準クレーム以外にも、アプリ固有のカスタムクレームをペイロードに追加できます。

02

JWT認証の実装パターンとセキュリティ設計

JWTを使った認証システムを正しく実装するためのパターンとセキュリティ上の注意点を解説します。誤った実装はセキュリティ上の重大な脆弱性につながるため、ベストプラクティスを理解することが重要です。

アクセストークンとリフレッシュトークンの使い分け

セキュリティとユーザービリティを両立するため、有効期限の短いアクセストークン(15分〜1時間)と有効期限の長いリフレッシュトークン(1日〜30日)を組み合わせる「ダブルトークン」パターンが広く使われています。アクセストークンはAPIリクエストのAuthorizationヘッダーに付けて送り、期限切れになったらリフレッシュトークンで新しいアクセストークンを取得します。

JWTをどこに保存すべきか

ブラウザでのJWT保存場所にはlocalStorage・sessionStorage・HttpOnly Cookieの3択があります。localStorageはXSS攻撃でトークンが盗まれるリスクがあります。HttpOnly Cookieに保存するとJavaScriptからアクセスできないためXSSに強くなりますが、CSRF対策が必要になります。SameSite=StrictまたはSameSite=LaxのCookieフラグを使うことでCSRFリスクを大幅に軽減できます。

JWTの無効化(ログアウト)の難しさと対策

JWTはステートレスなためサーバー側でトークンを管理しません。これが利点である一方、「発行したトークンを無効化する」のが難しいという欠点でもあります。対策としてはexpを短く設定する・トークンのブラックリストをRedis等に保持する・jtiクレームを使って使用済みトークンを追跡する、などの方法があります。セキュリティ要件に応じて適切な方法を選択してください。

よくある質問(FAQ)

本番環境で使用しても安全ですか?
開発・テスト用途のみにご使用ください。実際のサービスで使用している本番の秘密鍵をブラウザベースのツールに入力しないでください。本番環境のJWTトークンはサーバーサイドのライブラリ(jsonwebtoken/Node.js、PyJWT/Python、java-jwt/Java等)を使用して生成してください。
HS256以外のアルゴリズムに対応していますか?
このツールはHS256(HMAC-SHA256)に対応しています。RS256・RS384・RS512(RSA署名)やES256(楕円曲線署名)などの非対称アルゴリズムには対応していません。非対称アルゴリズムは秘密鍵・公開鍵のペアが必要なため、サーバーサイドでの生成を推奨します。
exp(有効期限)などの標準クレームは使えますか?
はい。ペイロードのJSONオブジェクトに "exp"(有効期限・Unixタイムスタンプ)・"iat"(発行日時)・"sub"(サブジェクト)・"iss"(発行者)・"aud"(対象者)などのJWT標準クレーム(RFC 7519)を追加できます。
JWTとは何ですか?
JWT(JSON Web Token)はJSONベースのオープンスタンダード(RFC 7519)で、2つの当事者間で情報を安全に伝達するためのコンパクトなトークン形式です。ヘッダー(alg・typ)・ペイロード(クレーム)・署名の3部分をBase64URLエンコードしてドットで連結した構造です。Webアプリの認証・API認可・情報交換に広く使われています。
JWTのペイロードはBase64でデコードできますか?
はい。JWTのペイロード部分(ドット区切りの2番目の部分)はBase64URLエンコードされているだけで暗号化されていません。誰でもデコードして内容を確認できます。そのためペイロードに機密情報(パスワード・クレジットカード番号等)を含めてはいけません。秘密鍵による署名は「改ざんされていないこと」の証明に使われます。
JWTの有効期限(exp)はどのように設定しますか?
有効期限はペイロードのexpクレームにUnixタイムスタンプ(エポック秒)で設定します。例えば1時間後なら現在のUnixタイムスタンプ + 3600を指定します。JavaScriptでは Math.floor(Date.now() / 1000) + 3600 で1時間後のタイムスタンプを取得できます。このツールのUnixタイムスタンプ変換ツールを使って特定の日時のエポック秒を確認してください。

不具合や動作がおかしい点を見つけたら教えてください。

不具合報告はこちら →