JWT デコード

JSON Web Token をブラウザでデコード。header と payload を表示し、iat や exp を日時に変換して期限切れかを判定、HS256/384/512 の署名も検証できます。

トークンはブラウザ内でのみデコードされます。サーバーに送信されることはなく、ページを離れると保存も残りません。

署名を検証

時刻のクレーム

クレーム タイムスタンプ 日時(このデバイスのタイムゾーン) 相対時間
署名

JWT とは?

JWT(JSON Web Token)はログインの認証情報によく使われる形式で、. で区切られた 3 つの Base64URL からなります:header.payload.signature。header は署名のアルゴリズム、payload はユーザー情報や有効期限などの「クレーム」、signature は内容が改ざんされていないことを確認するためのものです。

使い方

  1. 左に JWT を貼り付けます(先頭の Bearer があっても構いません)。右側にすぐ header、payload、有効期限の状態が表示されます。
  2. iat(発行日時)、nbf(有効開始)、exp(有効期限)は、お使いのタイムゾーンの日時に変換されます。
  3. HS256、HS384、HS512 の場合は、シークレットキーを入力すると署名が正しいかを検証できます。

例

「サンプルを読み込む」で読み込まれる JWT の payload をデコードすると:

{
  "sub": "1234567890",
  "name": "Mike",
  "role": "admin",
  "iat": 1700000000,
  "exp": 4102444800
}

これはシークレットキー toolpivo-secret で署名した HS256 のトークンです。

よくある質問

JWT の内容は暗号化されていますか?

いいえ。header と payload は Base64URL でエンコードされているだけで、トークンを手に入れた人は誰でも内容を読めます。payload にパスワードなどの機密情報を入れないでください。署名は内容が変更されていないことを証明するだけで、内容を隠すものではありません。

ここにトークンを貼り付けても安全ですか?

デコードと検証はすべてブラウザ内で行われ、トークンとシークレットキーがサーバーに送信されることはなく、ブラウザに保存されることもありません。ただし本番環境のトークンは、使い終わったら失効させることをおすすめします。

RS256 を検証できないのはなぜ?

RS256 や ES256 などは秘密鍵で署名し、発行者の公開鍵で検証するアルゴリズムです。このツールは現在、同じシークレットキー(共通鍵)で署名と検証を行う HS256、HS384、HS512 のみに対応しています。

exp の単位は?

JWT の標準(RFC 7519)では、exp、iat、nbf はいずれも「秒」単位の Unix タイムスタンプで、ミリ秒ではありません。