戻る

JWT ビルダー

開発ツール

読み込み中

ツールを読み込んでいます

ツールを準備しています。残り時間はまだわかりません。

このツールの処理はすべてブラウザー内で行われ、入力内容はサーバーへ送信されません。

このツールについて

JSON オブジェクトとテキスト鍵から、コンパクト形式の HMAC 署名付き JWT をブラウザー内で作成します。HS256、HS384、HS512 を選ぶと、Web Crypto が Base64url Header.Payload のバイト列に署名します。管理されたテストで使い、JWT デコーダーで内容を確認できます。署名の生成はクレームの検証や権限付与ではありません。

主な用途

  • ローカル API や結合テスト用の再現可能な HMAC トークンを作る。
  • 同じテストクレームで HS256、HS384、HS512 を比較する。
  • 署名入力を確認して JSON のバイト列と署名の関係を学ぶ。

使い方

  1. 1.Header と Payload に JSON オブジェクトを入力し、HS256、HS384、HS512 を選びます。
  2. 2.テスト用のテキスト鍵を入力します。そのまま UTF-8 バイトとして使い、Base64 や 16 進数からはデコードしません。
  3. 3.生成後にトークンをコピーするか署名入力を展開します。選択アルゴリズムで Header.alg を上書きし、文字列の typ は保持、それ以外は JWT にします。

使用例

再現可能な HS256 テストトークン

{
  "header": {
    "alg": "HS256",
    "typ": "JWT"
  },
  "payload": {
    "sub": "user-42",
    "iat": 1700000000
  },
  "algorithm": "HS256",
  "secret": "demo-only-key-do-not-use-in-production"
}
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyLTQyIiwiaWF0IjoxNzAwMDAwMDAwfQ.fskbbfT8Y-3vjXSxYDdc-fa23GdUmhivjVOFM9NWx8w

header と payload を各欄に入れ、algorithm を選び、secret をそのまま入力します。この公開デモ鍵はテスト専用です。

Unicode JSON で HS512

{
  "header": {
    "alg": "HS512",
    "typ": "JWT"
  },
  "payload": {
    "name": "你好 / 日本語"
  },
  "algorithm": "HS512",
  "secret": "demo-only-key-do-not-use-in-production"
}
eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoi5L2g5aW9IC8g5pel5pys6KqeIn0.6D1s9ZGSyIcSKLrHkt0c-TQ5z-EXQBbca1LyIGKjSD5nTsgjVxvxt9YDGLSLWJ_hp4GxYVemJchQ7XfXNV6xmQ

UTF-8 のクレームをエンコードしてから HMAC 署名します。公開のサンプル鍵はテスト用で、本番用ではありません。

よくある誤りと確認事項

  • 空の JSON、末尾のカンマ、配列、null は Header や Payload オブジェクトとして使えません。
  • 空の鍵、UTF-8 で 4,096 バイトを超える鍵、Web Crypto が使えない環境では署名できません。
  • 本番の鍵を入力したり公開デモ鍵を再利用したりしないでください。署名してもクレームは読めます。

制限と注意事項

  • HMAC 署名のみです。RS256、ES256、EdDSA、署名なしの alg:none、JWE 暗号化には非対応です。
  • 各 JSON は JavaScript 文字列のコード単位で 65,536、鍵は UTF-8 で 4,096 バイトまでです。
  • HTTPS や localhost などの安全なコンテキストで Web Crypto が必要です。
  • クレームを検証せず、有効期限も自動追加しません。Payload は読めるままで、署名は暗号化ではありません。
  • 短いテスト鍵を受け入れ、本番用の強度は強制しません。RFC 7518 は HS256、HS384、HS512 にそれぞれ最低 256、384、512 ビットの鍵を要求します。本番では安全に生成した鍵と実績あるライブラリーを使ってください。

よくある質問

実際に署名を生成しますか?

はい。Base64url Header.Payload 文字列に対し、選択した SHA-256、SHA-384、SHA-512 で HMAC を計算し、エンコードした MAC を末尾に付けます。

他のツールと署名が違うのはなぜですか?

正確な UTF-8 鍵、選択アルゴリズム、シリアライズ後の Header/Payload バイト列を比較してください。空白は圧縮され、キー順が影響する場合があり、alg は選択欄で設定されます。

生成しただけで本番の認証に使えますか?

生成だけでは権限を証明できません。受け取るアプリが信頼する鍵で署名を検証し、想定するクレームとアルゴリズムを確認する必要があります。

関連ツール