JWTデコーダー: ヘッダー、ペイロード、有効期限を表示
JSON Web Token (JWT) を即座にデコードします。ヘッダーとペイロードを安全に表示。
署名
署名の検証にはシークレットキーが必要です。
このJWTデコーダーがトークンを読み取る仕組み
JSON Web Tokenは、ヘッダー、ペイロード、署名という3つの要素を1つの文字列にまとめたものです。このデコーダーはエンコードされたトークンをこの3つの部分に分割し、ヘッダーとペイロードを読みやすいJSONに戻し、アルゴリズム、発行日時、有効期限を抜き出します。コードを書かずにトークンの中身を確認できます。
ヘッダー、ペイロード、署名
トークンは2つのピリオドによって、ヘッダー.ペイロード.署名の3つの部分に分かれています。最初の2つの部分はbase64urlでエンコードされたJSONなので、デコードは暗号化ではなく、元に戻せる変換にすぎません。ヘッダーには署名アルゴリズム(alg claim、たとえばHS256やRS256)とトークンの種類が記載されています。ペイロードにはクレームが含まれ、subject識別子や独自のフィールド、そして通常はUnix秒で保存されたiat(発行日時)とexp(有効期限)が入っています。署名はヘッダーとペイロードから計算される暗号学的な値で、これを確認するには署名を作成した秘密鍵または秘密鍵が必要です。そのため、トークンの中身を読むことと、それが本物であることを検証することは別の作業です。algがnoneのトークンは署名がなく、ヘッダー.ペイロードという2つの部分だけで構成されることがあり、このデコーダーはその短い形式も受け付け、署名の欄を空のままにします。base64urlは通常のbase64と異なり、プラス記号とスラッシュの代わりにハイフンとアンダースコアを使い、埋め文字であるイコール記号も省略されることが多いため、このデコーダーはまずこれらの文字を元に戻してからJSONとして解析します。
具体例で見る
次のようなトークンを貼り付けると、3つの色分けされたセグメントに分かれ、その後ヘッダーとペイロードが整形されたJSONとして表示されます。
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI5Mzg0NzU2MTAyIiwibmFtZSI6Ill1a2kgVGFuYWthIiwiaWF0IjoxNjk3MDI1NjAwLCJleHAiOjE3MDQ4MDE2MDB9.pADgnlLOqnoqgoEFlRNGBtfVLRo
{
"alg": "HS256",
"typ": "JWT"
}
{
"sub": "9384756102",
"name": "Yuki Tanaka",
"iat": 1697025600,
"exp": 1704801600
}
AlgorithmバッジにはヘッダーからHS256が表示されます。iatの値は2023年10月11日、expの値は2024年1月9日に変換され、この日付はすでに過去なのでStatusバッジはEXPIREDと表示されます。これらの処理はすべてブラウザ内で行われ、サーバーには送信されません。また、このツールは署名を作成した鍵を持っていないため、署名が本物かどうかを検証することは一切ありません。