JWT エンコーダー(HS256、RS256、ES256)
シークレットによる HS256/384/512、PEM 秘密鍵による RS・PS・ES 256/384/512 の JSON Web Token を作成して署名します。iat と exp を追加し、結果を検証します。
JSON Web Token は、ユーザーが誰か、トークンがいつ失効するかといったクレームを、発行者が署名した短い文字列に載せます。このエンコーダーは、ブラウザー内でトークンを作成して署名します。共有シークレットによる HS256/384/512、PEM または JWK 形式の秘密鍵による RS・PS・ES 256/384/512 に対応します。現在時刻を iat として入れたり、指定した分数後の exp を加えたりでき、作成したトークンはすべて表示前に検証されます。
使い方
- API が期待するアルゴリズムを選びます。
- ヘッダーとペイロードの JSON を編集します。"alg" は自動で入力されます。
- 共有シークレットを入力するか、RS・PS・ES のアルゴリズムなら秘密鍵を貼り付けます。
- 必要なら 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 を使ってください。
出典
最終更新:
この入力内容のページアドレス: https://kakao.mobile/ja/tools/jwt-encoder/
このツールを引用する
kakaoCalc. (2026, November 8). JWT エンコーダー(HS256、RS256、ES256). https://kakao.mobile/ja/tools/jwt-encoder/
“JWT エンコーダー(HS256、RS256、ES256).” kakaoCalc, 8 Nov. 2026, kakao.mobile/ja/tools/jwt-encoder/.