JWTジェネレーター
JWTをブラウザ内で構築して署名します。ペイロードのクレーム(標準のsub、aud、expなどに加え、任意のカスタム)を入力し、アルゴリズム(共有シークレットによるHS256、または秘密鍵によるRS256/ES256)を選ぶと、ツールが3パートのトークンを生成します。ローカル開発、負荷テスト、認証問題の再現に便利です。
JWTを生成する方法
-
1
ペイロードを書く
標準のクレーム(`sub`、`iss`、`aud`、`exp`、`iat`、`nbf`)に加え、アプリが期待する任意のカスタム。
-
2
アルゴリズムを選ぶ
共有シークレットによるHS256/384/512、またはPEM形式の秘密鍵によるRS256/ES256。
-
3
鍵を提供する
HMACには共有シークレットのテキスト、RSA/ECDSAには秘密鍵を貼り付けます。どちらもブラウザにとどまります。
-
4
生成する
出力は署名済みのトークンです。コピーしてテストに使い、JWTデコーダーでデコードして検査します。
認証済みユーザーのトークンの典型的なペイロード
{
"iss": "https://auth.example.com",
"aud": "api.example.com",
"sub": "user_12345",
"iat": 1713398400,
"nbf": 1713398400,
"exp": 1713402000,
"jti": "3c7c7e14-2de4-41f0-bf09-1eb5cfad4c01",
"scope": "read:profile write:posts"
}
アルゴリズムの選択:HMAC vs 非対称
| アルゴリズム | 鍵の種類 | 使用する場面 |
|---|---|---|
| HS256 | 256ビット共有シークレット | 自分で署名し検証するモノリス |
| HS384/512 | より長いシークレット | HS256と同じだがより強力 |
| RS256 | RSA 2048+ | 発行者が署名し、多くのサービスが公開鍵で検証 |
| ES256 | ECDSA P-256 | RS256と同じだが署名が小さい |
| EdDSA | Ed25519 | 最速の非対称検証、最小の鍵 |
鍵の強度
- HMACのシークレットは、少なくともアルゴリズムの出力サイズと同等のエントロピーを持たなければなりません。HS256は256ビットのランダム(32バイト)を必要とし、それ未満は総当たり可能です。
- RSAの鍵は最低2048ビット、長命なトークンには3072または4096であるべきです。
- ECDSA(ES256)は、はるかに小さい鍵とより速い署名で、RSA 3072に匹敵するセキュリティを提供します。
有効期限のガイドライン
| トークンの種類 | 典型的な exp の期間 |
|---|---|
| アクセストークン | 5〜60分 |
| リフレッシュトークン | 数日〜数週間 |
| パスワードリセット | 5〜15分 |
| メール認証 | 24時間 |
| サービス間 | 1〜5分(短め) |
短い有効期限+リフレッシュトークンが現代のパターンです。長命なアクセストークンは、漏洩したときに失効させるのが難しいです。
よくある間違い
- テスト用のシークレットを本番で再利用する。 ジェネレーターは、シークレットが弱そうな場合、HS256のシークレットと出力JWTをテスト専用とマークします。その警告を信頼してください。
expなしで署名する。 有効期限のないJWTは永遠に有効です。よほどの理由と失効リストがない限り、常にexpを設定してください。- 検証側でヘッダーの
algを使う。 検証側では常にアルゴリズムを許可リスト化してください。トークンが要求するものに従わないでください。 - ここに本物の秘密鍵を貼り付ける。 このジェネレーターはブラウザで動きますが、秘密鍵は秘密として扱ってください:本番のものではなくテスト用の鍵を使ってください。
よくある質問
いいえ。署名はWeb Crypto APIを使ってブラウザで行われます。鍵がマシンから出ることはありません。とはいえ、本番の鍵については、ブラウザではなく管理された環境で生成・署名してください。
同じサービスが署名し検証するモノリスにはHS256で十分です。発行者が検証者と分かれているときはRS256またはES256のほうが良いです、署名鍵をさらさずに公開鍵を共有できます。
短く。アクセストークンには5〜15分が典型です。シームレスなUXには、より長い寿命のリフレッシュトークンを使ってください。expクレームなしでJWTを発行しないでください。
ツールは、壊れた/署名なしのトークンの意図的なテストのために、目立つ警告とともにalg: noneの出力に対応しています。本番コードではそのようなトークンを決して受け入れないでください。
関連ツール
CSRジェネレーター
PEMエンコードされた証明書署名要求と対応するRSA秘密鍵を生成します。コモンネーム、組織の項目、鍵のサイズ(2048、3072、4096ビット)を指定できます。
暗号化識別子
暗号文またはハッシュ値を貼り付けると、識別子からMD5、SHA、bcrypt、AES、RSA、Base64などの推定されるアルゴリズムや符号化方式が示されます。
チェックサム検証
任意のテキストの MD5、SHA-1、SHA-256、SHA-384、SHA-512、CRC32 チェックサムを計算し、期待値と比較して一致・不一致を明確に判定します。
Base64ファイルエンコーダー
あらゆるファイル(PDF、ZIP、画像、実行ファイル)をBase64テキストにエンコードし、JSON、メール、YAML、data URIへ埋め込めます。ブラウザ内でローカルに動作し、アップロードはありません。
SSL証明書ジェネレーター
自己署名のSSL/TLS証明書とRSA秘密鍵をすべてブラウザ内で生成します。Common Name、SAN、有効期間をカスタマイズし、PEM形式で書き出します。
ETH/USD 変換ツール
最新のETH/USDレートまたは自分で入力したレートで、イーサリアム(ETH)を米ドルに変換します。任意のETH数量のUSD価値を確認できます。
このツールは他の言語でも利用できます
- ตัวสร้าง JWT [TH]
- Generador de JWT [ES]
- Gerador de JWT [PT]
- JWT-generator [SV]
- Générateur de JWT [FR]
- Bộ tạo JWT [VI]
- مولد JWT [AR]
- JWT-Generator [DE]
- JWT 생성기 [KO]
- JWT-generator [NL]
- Generator JWT [ID]
- Generator JWT [PL]
- JWT Generator [EN]
- Generatore JWT [IT]
- Генератор JWT [RU]
- JWT Oluşturucu [TR]
- JWT 生成器 [ZH]