ブラウザー専用ツール

JWT エンコーダーと署名

編集可能な JSON から HMAC、RSA、RSA-PSS、ECDSA で JWT を作成します。

ブラウザー内で処理 · アップロードなし · アカウント不要

HS は共有シークレット、RS・PS・ES は PEM PKCS#8 秘密鍵が必要です。

本番のシークレットや秘密鍵をブラウザーツールに貼り付けないでください。本番では保守された JWT ライブラリと保護されたサーバー側鍵管理を使用してください。

このツールの使い方

編集可能な JSON から HMAC、RSA、RSA-PSS、ECDSA で JWT を作成します。

サンプルで入力形式とメタデータを確認してから、自分の値に置き換えてください。

プライバシーと安全な利用

処理はこのブラウザータブ内で完結します。大きな値は端末メモリを多く使う場合があります。

本番のシークレットや秘密鍵をブラウザーツールに貼り付けないでください。本番では保守された JWT ライブラリと保護されたサーバー側鍵管理を使用してください。

よくある失敗と原因

  • 入力が空、不正、またはこのツールが想定する形式ではありません。
  • 選択したモードと alphabet、ファイル形式、表現方法が一致していません。
  • 非常に大きな値ではエンコード前後のデータが同時に存在し、メモリ不足になることがあります。
  • 変換成功は、デコード内容の安全性や信頼性を保証しません。

同等のコマンド

利用中のランタイムやシェルで再現できます。信頼できない入力は検証し、バイナリを端末へ直接出力しないでください。

Python

import base64, hashlib, hmac, json
b64 = lambda value: base64.urlsafe_b64encode(value).rstrip(b'=').decode()
body = '.'.join([b64(json.dumps(header, separators=(',', ':')).encode()), b64(json.dumps(payload, separators=(',', ':')).encode())])
token = body + '.' + b64(hmac.new(secret, body.encode(), hashlib.sha256).digest())

JavaScript

import { createHmac } from 'node:crypto';
const b64 = value => Buffer.from(JSON.stringify(value)).toString('base64url');
const body = `${b64(header)}.${b64(payload)}`;
const token = `${body}.${createHmac('sha256', secret).update(body).digest('base64url')}`;

Shell

b64url() { openssl base64 -A | tr '+/' '-_' | tr -d '='; }
body="$(printf '%s' "$HEADER" | b64url).$(printf '%s' "$PAYLOAD" | b64url)"
sig=$(printf '%s' "$body" | openssl dgst -sha256 -mac HMAC -macopt "key:$SECRET" -binary | b64url)

規格と公式リファレンス