JWTエンコード・デコード

概要

JWT デコーダー/エンコーダーは、JSON Web Token をデバッグするためのブラウザベースのツールです。JWT を貼り付けると Header と Payload がデコードされて署名を検証できます。エンコードモードに切り替えると新しい署名付きトークンを作成できます。すべてローカルで動作し、トークンや鍵がサーバーに送信されることはありません。

JWT の構造

JWT はドットで区切られた 3 つの Base64url エンコードセグメントで構成されます。

eyJhbGciOiJIUzI1NiJ9
.eyJ1c2VySWQiOiIxMjMiLCJleHAiOjE3MDAwMDAwMDB9
.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

デコードされた Header:

{ "alg": "HS256", "typ": "JWT" }

デコードされた Payload:

{
  "userId": "123",
  "exp": 1700000000,
  "iss": "example.com",
  "iat": 1699993600
}

alg は署名アルゴリズムを決定します。exp は有効期限の Unix タイムスタンプです。iss は発行者です。iat は発行時刻です。

署名の検証

JWT を貼り付けると、ツールが Header から alg を読み取り、適切な鍵入力フィールドを表示します。

  • HS256/HS384/HS512(HMAC): 共有シークレットを入力
  • RS256/RS384/RS512(RSA): PEM 形式の公開鍵または秘密鍵を入力
  • ES256/ES384/ES512(ECDSA): PEM 形式の EC 公開鍵または秘密鍵を入力

検証結果はリアルタイムに更新されます — 有効な場合は緑、無効な場合は赤。追加のボタン操作は不要です。

アルゴリズムの選択

HMAC 対称アルゴリズム(HS256/384/512)

  • 同じ鍵で署名と検証を行う
  • 単一サービス内部での使用に適している
  • 鍵は厳重に秘密管理する — クライアントに公開してはいけない

RSA/ECDSA 非対称アルゴリズム(RS256/ES256 など)

  • 秘密鍵で署名し、公開鍵で検証する
  • 公開鍵は公開配布可能
  • 分散システムや本番環境に推奨

新しい JWT のエンコード

エンコードモードで:アルゴリズムを選択し、Payload の JSON を編集し、鍵または秘密鍵を入力して、2h(2 時間)、30m(30 分)、1d(1 日)、7d(7 日)などの有効期限を設定します。ツールは exp タイムスタンプを自動的に計算して書き込みます。

署名検証が失敗する原因

最も多い原因:間違った鍵(トークンに署名したシークレットと異なる)、アルゴリズムの不一致(Header に RS256 と書かれているのに HMAC シークレットを入力した)、またはトークンが改ざんされている。非対称トークンの場合は、検証に秘密鍵ではなく正しい公開鍵を使用しているか確認してください。