ツール一覧

JWTの中身を確認する方法|改ざんが検知される仕組み

JWT セキュリティ 認証
結論

JWTの中身は誰でもデコードできる(暗号化ではない)。ただし署名があるため改ざんはできない

JWTの構造

JWTは Header.Payload.Signature の3つをドット(.)で繋いだ文字列です。

  • Header — アルゴリズム情報(HS256など)
  • Payload — ユーザーID、有効期限などの実データ
  • Signature — 改ざん検知用の署名

HeaderとPayloadは Base64Urlエンコードされているだけ なので、デコードすれば中身が読めます。

暗号化(Encryption) エンコード(Encoding)
鍵がないと元に戻せない 誰でも元に戻せる
目的:中身を隠す 目的:データ形式の変換
重要

JWTにパスワードやカード番号を含めるのは絶対NG。含めるのはユーザーIDや有効期限など、漏れてもクリティカルではない情報のみ。

デコードして中身を確認する

例えば、以下のようなJWTの場合:

eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0IiwibmFtZSI6IlRhcm8ifQ.xxxxx

2番目の部分(ペイロード)をBase64デコードすると:

{
  "sub": "1234",
  "name": "Taro"
}

「認証が通らない」「権限が反映されない」といった不具合のデバッグでは、まずペイロードの中身を確認するのが第一歩です。

改ざんが検知される仕組み

「ペイロードを書き換えたらどうなるか?」——サーバーが署名で弾きます。

サーバーはJWT発行時に、秘密鍵を使ってHeaderとPayloadからシグネチャを計算しています。ペイロードが1文字でも変わると計算結果が変わるため、送られてきた署名と一致しなくなります。

結果:401 Unauthorized が返される。

ツールでサクッと確認

🧪 JWTデコードツール

貼り付けるだけでHeader・Payloadを確認できます

試す