JA
マイツール

JWT エンコーダー(HS256、RS256、ES256)

シークレットによる HS256/384/512、PEM 秘密鍵による RS・PS・ES 256/384/512 の JSON Web Token を作成して署名します。iat と exp を追加し、結果を検証します。

"alg" は常に上で選んだアルゴリズムに設定されます。
鍵はこのページの中だけで使われます。可能なら使い捨ての鍵やテスト用の鍵を使ってください。
マイツール →
広告

JSON Web Token は、ユーザーが誰か、トークンがいつ失効するかといったクレームを、発行者が署名した短い文字列に載せます。このエンコーダーは、ブラウザー内でトークンを作成して署名します。共有シークレットによる HS256/384/512、PEM または JWK 形式の秘密鍵による RS・PS・ES 256/384/512 に対応します。現在時刻を iat として入れたり、指定した分数後の exp を加えたりでき、作成したトークンはすべて表示前に検証されます。

使い方

  1. API が期待するアルゴリズムを選びます。
  2. ヘッダーとペイロードの JSON を編集します。"alg" は自動で入力されます。
  3. 共有シークレットを入力するか、RS・PS・ES のアルゴリズムなら秘密鍵を貼り付けます。
  4. 必要なら iat を現在時刻に、有効期限を分単位で設定して、トークンをコピーします。

計算式

token = Base64URL(header) + "." + Base64URL(payload) + "." + Base64URL(signature over the first two parts)

HS アルゴリズムは SHA-256/384/512 の HMAC を使います。RS は RSASSA-PKCS1-v1_5、PS はハッシュと同じ長さのソルトを使う RSASSA-PSS、ES は P-256、P-384、P-521 の ECDSA で、署名は生の r‖s で書かれます(RFC 7518)。JSON は、キーの順序を保ったまま簡潔にシリアライズされます。

計算例

既定のヘッダー {"alg":"HS256","typ":"JWT"}、ペイロード {"sub":"1234567890","name":"John Doe","iat":1516239022}、シークレット "your-256-bit-secret" では、トークンは eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIi….SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c になります。有名な jwt.io のサンプルです。

よくある質問

ここに秘密鍵を貼り付けても安全ですか?

署名はブラウザーの Web Crypto API で行われ、何も送信されません。それでも本番の署名鍵は秘密として扱ってください。ここではテスト用の鍵を使い、実際のトークンはサーバーで署名してください。

HS256 で PEM 鍵が拒否されるのはなぜですか?

HS256 には共有シークレットが必要です。公開鍵を HMAC のシークレットとして使うと、公開鍵を知っている誰でもトークンを偽造できる「アルゴリズム混同」攻撃になるため、エンコーダーは拒否します。鍵ペアには RS256 か ES256 を選んでください。

ES256 のトークンが毎回変わるのはなぜですか?

ECDSA と RSA-PSS の署名は、署名のたびに新しい乱数を使います。どれも有効です。HS と RS のトークンは決定的で、毎回同じです。

どのアルゴリズムを使えばよいですか?

1 つのサービスが発行と検証の両方を行うなら HS256 が簡単です。他の当事者がトークンを検証でき、作成はできないようにしたい場合は RS256 か ES256 を使ってください。

出典

最終更新:

このツールを引用する
APA

kakaoCalc. (2026, November 8). JWT エンコーダー(HS256、RS256、ES256). https://kakao.mobile/ja/tools/jwt-encoder/

MLA

“JWT エンコーダー(HS256、RS256、ES256).” kakaoCalc, 8 Nov. 2026, kakao.mobile/ja/tools/jwt-encoder/.

広告