JWTジェネレーター

HS256/384/512、RS、PS、ES、EdDSAで署名付きJSON Web Tokenを作成します。ペイロードの編集、expとiatの設定、鍵やシークレットの生成がすべてブラウザ内で行えます。

ハッシュ長以上のランダムなバイト列を使ってください(HS256 なら 32 バイト)。短いパスワードはオフラインで総当たりされる恐れがあります。

トークンと鍵はブラウザー内で Web Crypto API(jose ライブラリ)により生成されます。何もアップロードされません。

JWTジェネレーターとは?

JWTジェネレーターは、任意のJSONペイロードに署名して、コンパクトなJSON Web Tokenにします。HMAC(HS256/384/512)、RSA(RS256/384/512)、RSA-PSS(PS256/384/512)、ECDSA(ES256/384/512)、EdDSA(Ed25519)に対応し、ワンクリックでiatとexpのクレームを追加できます。また、ランダムなシークレットや、検証に使える公開鍵付きの鍵ペアも生成できます。

JWTジェネレーターの使い方

  1. アルゴリズムを選びます。
  2. ペイロードのJSONを編集します。ボタンで、iatを現在時刻に、expを1時間後または1日後に設定できます。
  3. シークレット(HS*)またはPKCS#8 PEM / JWKの秘密鍵を入力するか、Generate random secret / Generate key pairを押します。
  4. 必要に応じてキーID(kid)を設定し、Sign tokenを押して、トークン(非対称アルゴリズムでは公開鍵も)をコピーします。

例

入力
HS256, payload {"sub":"1"}, secret your-256-bit-secret
出力
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxIn0.rTCH8cLoGxAm_xw68z-zXVKi9ie6xJn9tnVWjd_9ftE

JWTジェネレーターを使うべき場面

API開発用のテストトークンの作成、バグの再現、JWTの署名の仕組みの学習に使います。本番では、鍵をシークレットストアに保持できるよう、認証サーバーからトークンを発行してください。本番の秘密鍵をWebサイトに貼り付けてはいけません。

JWTジェネレーターの仕組み

署名には、ブラウザのWeb Crypto APIの上でjoseライブラリを使います。ヘッダーは {"alg": …, "typ": "JWT"} に任意のkidを加えたもので、ヘッダーとペイロードはJSONにシリアライズされ、Base64URLでエンコードされて署名されます。HMACのシークレットはUTF-8バイトとして使われ、ボックスにチェックを入れるとBase64/Base64URLからデコードされます。生成されるHMACシークレットは、ハッシュサイズに合わせた32/48/64バイトのランダムなバイト列で、鍵ペアはWeb Cryptoで作成され、PKCS#8とSPKIのPEMとしてエクスポートされます。

一般的な使用例

  • APIの401処理をテストするために、期限切れのトークンを作る。
  • JWKSベースのバリデーターをテストするために、RS256の鍵ペアとトークンを生成する。
  • ローカル開発向けに、カスタムクレーム付きのトークンに署名する。
  • HS256とES256の署名の違いを説明する。

セキュリティ注意事項

テストには使い捨ての鍵を使ってください。短い、または推測されやすいHMACシークレットは、それで署名されたトークンからオフラインで総当たりされる可能性があります。

よくある質問

どのアルゴリズムを使うべきですか。

同じサービスがトークンを発行して検証し、共有シークレットを保持できるならHS256です。ほかの関係者が公開鍵でトークンを検証する必要があるなら、RS256、ES256、EdDSAです。

RSA鍵が拒否されるのはなぜですか。

BEGIN RSA PRIVATE KEYで始まる鍵はPKCS#1です。openssl pkcs8 -topk8 -nocrypt -in key.pem でPKCS#8(BEGIN PRIVATE KEY)に変換してください。

生成した鍵は保存されますか。

いいえ。ページを離れるまでの間だけ、ページ内に存在します。

おすすめの次のステップ

QR コードジェネレーター
リンク、テキスト、Wi-Fi 接続情報、連絡先、メール、SMS、電話番号の QR コードを無料で作成。誤り訂正、サイズ、色を設定でき、PNG または SVG でダウンロードできます。
CSS box-shadowジェネレーター
CSSのbox-shadowを視覚的に作成します。複数レイヤーの重ね、オフセット、ぼかし、広がり、inset、RGBAの不透明度に対応し、ライブプレビューで見ながらコードをコピーできます。
CSSグラデーションジェネレーター
ドラッグできるカラーストップ、角度、繰り返しモード、OKLCH補間に対応した、線形・放射・円錐のCSSグラデーションを設計します。ライブプレビューで確認し、コードをコピーできます。
CSS Flexboxジェネレーター
flex-direction、wrap、justify-content、align-items、gapと、アイテムごとのflex、order、align-selfを視覚的に設定します。子要素のライブプレビューとコピー可能なCSS付きです。
CSS Gridジェネレーター
CSS Gridレイアウトを視覚的に作成します。grid-template-columns/rows、検証付きの名前付きエリア、gap、揃え、アイテムごとの配置に対応し、きれいなCSSをコピーできます。
API キージェネレーター
sk_live_ のようなカスタムプレフィックス付きで安全なランダム API キーを生成。英数字・16 進・Base64url・Base32、任意の長さに対応し、エントロピー(ビット)も表示します。

他のカテゴリを見る