🔣 JWTデコーダー
JWT(JSON Web Token)を貼り付けると、ヘッダーとペイロードをデコードしてJSONで整形表示します。
入力
例: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.signature
署名はデコードせず、そのまま表示しています。
※ このツールは署名検証を行いません。トークンの内容を読むためのものです。処理はすべてお使いのブラウザ内で完結し、JWTがサーバーに送信されることはありません。秘匿情報を含むトークンの取り扱いにはご注意ください。
解説
JWT(JSON Web Token、ジョットと読まれることもあります)は、ログイン認証やAPIアクセスの認可で広く使われる、コンパクトなトークン形式です。サーバーがユーザー情報や有効期限などをまとめて署名し、クライアントはそれを「身分証」のように提示します。Authorization ヘッダーの `Bearer ...` や Cookie に入っている長い文字列が JWT であることはよくあります。
JWT は「ヘッダー」「ペイロード」「署名」の3つの部分を、ドット(.)でつないだ1本の文字列で構成されます(xxxxx.yyyyy.zzzzz の形)。ヘッダーには署名アルゴリズム(alg)やトークン種別(typ)が、ペイロードには中身の主張(クレーム)が入ります。前半2つは Base64URL という方式でエンコードされているだけで暗号化ではないため、鍵がなくても誰でも中身を読めます。本ツールはその「読む」作業を肩代わりします。
このツールは、貼り付けた JWT をドットで3分割し、ヘッダーとペイロードを Base64URL デコード(`-` `_` を標準Base64に戻し、パディングを補ってUTF-8として復元)してから、JSON として読みやすく整形表示します。たとえば `eyJhbGciOiJIUzI1NiJ9` というヘッダーは `{ "alg": "HS256" }` にデコードされます。ペイロードによく入る sub(誰のトークンか)・iss(発行者)・aud(宛先)・exp・iat・nbf などのクレームをそのまま確認できます。
時刻系のクレームは扱いやすく変換します。exp(有効期限)・iat(発行日時)・nbf(この時刻まで無効)は UNIX 時刻(1970年からの秒数)で書かれているため、そのままでは読めません。本ツールは端末のローカル時刻に変換し、元の数値と併記します。exp については現在時刻と比較し、「あと約○時間」または「約○日前に失効」といった相対表現も添えるので、トークンが生きているか失効済みかを一目で判断できます。
重要な注意として、このツールは署名の検証(改ざんチェック)を一切行いません。JWT の署名は、ヘッダーとペイロードが発行者の秘密鍵(または公開鍵)で正しく署名されているかを確かめるためのものですが、本ツールは署名部分をデコードも検証もせず、そのまま文字列として表示するだけです。したがって「中身が読める=そのトークンが本物・有効」という意味にはなりません。本番でトークンの正当性を判断するときは、必ずサーバー側でアルゴリズムと鍵を使った署名検証を行ってください。
プライバシー面では、デコードはすべてお使いのブラウザ内の JavaScript で完結し、貼り付けた JWT がサーバーや外部に送信されることはありません。ネットワーク通信も発生しません。とはいえ JWT には本人を特定できる情報や、まだ有効なアクセス権そのものが入っていることがあるため、有効な本番トークンの取り扱いには十分ご注意ください。
よくある質問
JWT(JSON Web Token)とは何ですか?
認証・認可で使われるトークン形式で、「ヘッダー」「ペイロード」「署名」をドットでつないだ1本の文字列です。サーバーが署名して発行し、クライアントが提示することで「ログイン済みである」「この操作の権限がある」ことを示します。前半2つは暗号化ではなくBase64URLエンコードなので、本ツールで中身を読めます。
JWTをデコードするとパスワードや秘密情報が見えてしまいますか?
JWTのペイロードは暗号化されていないため、鍵がなくても誰でも中身を読めます。だからこそ、JWTのペイロードにパスワードなどの秘密情報を入れてはいけません。逆に、貼り付けたトークンの中身に機密が含まれていないかを確認する用途にもこのツールは使えます。
署名の検証(本物かどうかの確認)はできますか?
いいえ。このツールは中身を読むためのデコーダーで、署名の検証は行いません。署名はそのまま表示するだけです。中身が読めても、それが改ざんされていない正しいトークンである保証にはなりません。検証はサーバー側で鍵を使って行ってください。
exp や iat はどういう意味ですか?
exp は有効期限(この時刻を過ぎると失効)、iat は発行日時、nbf はこの時刻まで使えない開始時刻を表すクレームです。いずれもUNIX時刻(秒)で書かれており、本ツールはローカル日時に変換して表示します。expは「あと約○分」「約○日前に失効」といった残り時間の目安も併記します。
貼り付けたトークンは外部に送られますか?
送られません。すべての処理はブラウザ内のJavaScriptで完結し、ネットワーク通信は発生しません。それでも、本番環境の有効なトークンはアクセス権そのものでもあるため、取り扱いにはご注意ください。
デコードに失敗するのはなぜですか?
JWTがドットで3つに区切られていない、Base64URLとして不正な文字が含まれている、デコード結果が正しいJSONでない、といった場合にエラーになります。トークンの一部だけをコピーしていないか、前後に余計な文字が混ざっていないかをご確認ください。