piapia123
ja

JWT のデコード(署名検証はしません)

エンコード・暗号

処理はすべてブラウザ内で完結します。データは送信されません

入力
出力

JWT を header・payload・signature の3つに分けてそれぞれ整形し、iat / nbf / exp の時刻クレームを読める日時に変換して、期限切れかどうかも示します。ここははっきり書いておく必要があります:このツールはデコードのみで、署名は検証しません。 header と payload は Base64URL で符号化された JSON にすぎないので、誰かが中のフィールドを書き換え(たとえば role を admin に変え)、署名部分をそのままにしても、ここでは「デコード成功」と表示されます。デコードの成功は形式が合法であることだけを意味し、信頼できることまでは意味しません —— 信頼を判断するには、秘密鍵か公開鍵で署名を計算し直す必要があり、そのためにはこのツールが持たない、持つべきでもない鍵が要ります。出力の signatureVerification: not-performed は、その一文の機械可読版です。

機能

  • header・payload・signature の3つに分けて整形表示
  • iat / nbf / exp を ISO の読める日時に変換し、期限切れかどうかも表示
  • パディングの欠けた Base64URL を許容し、Authorization ヘッダの Bearer 接頭辞や折り返しも認識
  • 出力は 1 つの JSON で、フィールドはそのまま他所へコピーして使えます
  • セグメント数が合わないときはどこが違うかを説明 —— 5 つなら暗号化された JWE トークンで、JWT ではないと指摘します
  • 署名検証は行わず、そのことを出力に明記(多くの「オンラインデコード」ツールはこの点を教えてくれません)

使い方

  1. トークンを入力欄に貼り付けます(Bearer 接頭辞は付いていてもいなくても構いません)
  2. 結果はすぐに表示されます(Ctrl/⌘ + Enter や「実行」でも可)
  3. 3つのセグメントと時刻情報を確認し、exp が期限切れかどうかを見ます
  4. 「コピー」で結果を取り出せます —— ただし「トークンが有効」の証明と受け取らないでください

よくある質問

デコードに成功したら、そのトークンは有効なのですか?
いいえ。このツールは署名を検証しませんので、トークンが改ざんされていないか、信頼できる発行元のものかは判断できません。誰でも構文的に合法で中身がでたらめな JWT を作れますが、ここではそれも同じようにデコードに成功します。有効性の判断は必ずサーバー側で、秘密鍵(HS256)または公開鍵(RS256)による署名検証で行ってください —— フロントエンドの公開鍵で検証できるのは非対称署名だけで、HS256 の秘密鍵は絶対にブラウザへ置いてはいけません。
payload は暗号化されていますか?
いいえ。Base64URL は符号化であって暗号化ではなく、トークンを手にした人は誰でも中身を読めます(このツールがやっているのはまさにそれです)。ですからトークンにはパスワードや電話番号、身分証番号のような情報を入れないでください。機密性が必要なら JWE(暗号化トークン)を使ってください。そのトークンは5つのセグメントからなり、このツールではデコードできません。
結果に signatureVerification: not-performed と書かれているのはなぜですか?
署名の検証には鍵が必要で、その鍵はブラウザに置くべきものではないからです。ツールにできるのは「検証していない」と正直に伝えることで、「デコードできた = 検証済み」と誤解させることではありません。この行は、別のトークンに変えても performed にはなりません。
有効期限は誰の時計で判定していますか?
お使いの端末の時計です。exp と現在時刻を比べて期限切れかどうかを判定するので、端末の時刻がずれていれば判定もずれます。本来の期限判定は常にサーバー側で行うべきです —— クライアントの時刻はいくらでも書き換えられます。
トークンがデコードできないのはなぜですか?
最も多いのは、貼り付けるときに文字が欠けた場合です(トークンは長く、途中で切れやすいからです)。次に多いのは、5 セグメントの JWE 暗号化トークンをつかんでいる場合です —— あれは暗号化されており、JWT ではありません。なお JWT は Base64URL(+ と / の代わりに - と _ を使い、= のパディングを付けません)を使っており、この点は本ツールが仕様どおりに処理しています。

関連ツール

Base64 変換

エンコード・暗号

テキストを Base64 に変換し、Base64 からテキストへ戻します。日本語や中国語、emoji も UTF-8 として正しく処理。すべてブラウザ内で完結し、内容は送信しません。

JSON 整形

整形

JSON をオンラインで整形・圧縮し、構文エラーは行・列まで特定。キー名の再帰的な並べ替えにも対応。解析はすべてブラウザ内で行い、送信しません。

タイムスタンプ変換

変換・計算

Unix タイムスタンプと日時を相互変換。秒とミリ秒を自動判別し、タイムゾーンを選べます。結果は行ごとにコピーでき、すべてブラウザ内で処理します。

URL エンコード

エンコード・暗号

日本語や中国語、空白・記号を %XX にエスケープし、復元します。URL 全体とパラメータ値では方式が異なり、間違えるとリンクが開けません。ブラウザ内で処理します。

HTML 実体参照

エンコード・暗号

< > & と引用符を HTML 実体参照に変換し、文字へ戻します。デコードは1回だけで、&amp;lt; は山括弧ではなく &lt; になります。すべてブラウザ内で処理します。

Unicode エスケープ

エンコード・暗号

日本語や中国語、emoji などの非 ASCII 文字を \uXXXX・\xXX・&#xXXXX; のエスケープ表記に変換し、復元もできます。すべてブラウザ内で処理し、送信しません。