このツールは 3 部構成のコンパクト JWS JWT(header.payload.signature。各部分は Base64URL、RFC 7515)のデコードだけを行います。ヘッダーとペイロードを JSON で表示し、署名はバイト数だけを表示します。署名、発行者、対象者、有効期限、真正性の検証は行いません。貼り付けた JWT はブラウザ内だけで処理され、サーバーに送信されません。
ヘッダーの読み方: alg はトークンを保護するアルゴリズムです。HS256 は SHA-256 を使う HMAC、RS256 は SHA-256 を使う RSASSA-PKCS1-v1_5、ES256 は P-256 と SHA-256 を使う ECDSA です(RFC 7518 §3.1)。typ は多くの場合 JWT で、kid がある場合は受信側が使う鍵を示します。alg: none は署名が空の Unsecured JWT(RFC 7519 §6)で、結果に表示します。
ペイロードの読み方: 登録済みのクレームは iss(発行者)、sub(主体)、aud(対象者)、exp(有効期限)、nbf(有効開始)、iat(発行時刻)、jti(JWT ID)です(RFC 7519 §4.1)。それ以外の名前は発行側と受信側で取り決めたものです。exp、nbf、iat は NumericDate で、1970-01-01T00:00:00Z(UTC)からの秒数です(うるう秒は数えない。RFC 7519 §2)。たとえば "iat": 1735689600 と "exp": 1735693200 は、2025-01-01T00:00:00Z に発行され、1 時間後の 01:00:00Z に期限が切れることを表します。受信側は exp 以降、または nbf より前にはトークンを受け入れてはならず、時計のずれとして数分程度の猶予を設けることができます(RFC 7519 §4.1.4、§4.1.5)。このツールは日時への変換を行いません。ヘッダーとペイロードは JavaScript の JSON.parse で読み取った値を整形し直して表示するため、±(2^53 − 1) を超える整数(64 ビットの ID など)は丸められることがあり、1.0 や 1e3 と書かれた数値は 1 や 1000 と表示されます。現実的な日時の NumericDate はこの範囲に十分収まります。日時への変換と、指定した時刻との比較には「JWT 時刻クレーム確認」を使ってください。
「検証していない」の意味: デコードには鍵が要らず、誰でも任意のヘッダーとペイロードでトークンを作れます。表示される内容は、トークンがそう主張しているというだけです。信頼するかどうかは受信側が、想定する鍵とアルゴリズムで署名を検証し(RFC 7515 §5.2)、そのうえで exp、nbf、iss、aud などのクレームを確認して決めます。このツールの表示をアクセス可否の判断に使わないでください。JWS のペイロードは暗号化されておらず、エンコードされているだけなので、トークンを持つ人は誰でも読めます。
対応していないもの: JWE(5 部構成)、JWS JSON シリアライズ、エンコードしないペイロード(b64: false、RFC 7797)。トークンは 16,384 文字までです。