JWT生成・署名(HS256/HS384/HS512)
ヘッダーとペイロードのJSONと秘密鍵から、HMAC署名付きのJWTを生成します。認証APIのテストトークン作成や、JWTの仕組みの学習に使えます。ブラウザ内で処理され、鍵やトークンがサーバーに送信されることはありません。生成したトークンの中身は JWTデコーダー で確認できます。
🔒 ブラウザ内で完結・入力データはサーバーに送信されません
秘密鍵が空です。空の鍵で署名したトークンは誰でも偽造できるため、検証用途以外では使わないでください。
注意事項
- ヘッダーの alg は選択したアルゴリズムで自動的に上書きされます。typ が無い場合は JWT が補われます。
- JSONは整形されずに1行へ詰めて署名します。入力の空白や改行は署名に含まれません。
- 対応するのはHMAC方式(HS256/384/512)のみです。RS256やES256など公開鍵方式には対応していません。
- 本番の秘密鍵は入力せず、検証用の鍵で試してください。JWTのペイロードは暗号化されず誰でも読めるため、機密情報を入れないでください。
用語解説
JWT(JSON Web Token)
ヘッダー・ペイロード・署名をBase64URLでエンコードし、ドットで連結したトークンです。認証情報の受け渡しによく使われます。
HS256 / HS384 / HS512
共有の秘密鍵とSHA-2のHMACで署名する方式です。署名と検証に同じ鍵を使います。
iat / exp
それぞれ発行日時と有効期限を表す標準クレームで、UNIX秒(1970年からの秒数)で指定します。
よくある質問
RS256やES256のJWTは生成できますか?
いいえ。共有の秘密鍵で署名するHS256・HS384・HS512のみ対応しています。公開鍵方式(RS256・ES256など)には対応していません。
生成したJWTが他のライブラリで検証に通りません。なぜですか?
秘密鍵の取り違えが最も多い原因です。鍵をテキストとして扱うか16進数として扱うか、Base64でエンコードされた鍵をそのまま文字列として渡していないかを確認してください。また、検証側が許可するアルゴリズムと、ここで選んだアルゴリズムが一致している必要があります。
ペイロードに入れた情報は隠せますか?
いいえ。JWTのペイロードは署名されるだけで暗号化されないため、トークンを受け取った人は誰でもBase64URLをデコードして中身を読めます。パスワードなどの機密情報は入れないでください。
ヘッダーのalgを書き換えても反映されますか?
ヘッダーのalgは、選択したアルゴリズムで常に上書きされます。署名方式とヘッダーの宣言が食い違ったトークンを作らないための仕様です。
このページをシェア
