JWTデコーダー
JSON Web Tokenを解析し、ヘッダー・ペイロード・クレームを読みやすく表示します。有効期限切れかどうかも即座に判定します
JSON Web Tokenを貼り付けると、その3つの部分を読みやすい形で確認できます。署名アルゴリズムを含むヘッダー、クレームを含むペイロード、そして発行日時・有効開始・有効期限を人間が読める時刻で表示します。トークンが期限切れかどうか、いつ切れるかもすぐに分かります。
APIが401を返したときに、原因が署名なのか、audienceなのか、単に期限切れのトークンなのかを確かめる日常的なデバッグ手順です。すべてはブラウザ内でデコードされるため、本番のトークンがどこかへ送信されることはありません。
JSON Web Tokenをデコードする方法
トークンを貼り付けます
ヘッダー、ペイロード、有効期限を確認します
必要ならペイロードのJSONをコピーします
よくある質問
署名も検証されますか?
いいえ、そしてそこは重要です。デコードは各部分をbase64urlで復号するだけなので、内容は読めても真正性が証明されるわけではありません。サーバーが署名を検証するまで、デコードしたトークンを信頼できるものとして扱わないでください。
トークンが期限切れかどうかはどう分かりますか?
expクレームは秒単位のUnixタイムスタンプで、このツールが現在時刻と比較し、日時とまだ有効かどうかを表示します。
exp、iat、nbfの違いは何ですか?
iatはトークンが発行された時刻、nbfは使用できる最も早い時刻、expは有効でなくなる時刻です。トークンが受け入れられるのはnbfとexpの間だけです。
実際のトークンをここに貼り付けても安全ですか?
デコードはすべてブラウザ内で行われるため、トークンは送信されません。それでもトークンは認証情報として扱ってください。信頼していないサイトには貼り付けず、漏えいの可能性があれば更新してください。
トークンがエラーになるのはなぜですか?
JWTはドットで区切られたちょうど3つの部分からなります。部分が欠けている、途中に改行がある、実体が不透明なセッションIDである、といった場合はいずれもJWTではないと報告されます。
トークンはアップロードされますか?
いいえ。デコードは端末内で行われます。
概要
| 入力 | テキスト |
|---|---|
| 複数ファイル | いいえ |
| 実行場所 | ブラウザ内で実行 - ファイルはアップロードされません |
| オフラインでも動作 | はい — ページを読み込んだ後 |
| 料金 | 無料・登録不要・透かしなし |
機密情報を安全に扱う
開発者向けツールは、人が思っている以上に頻繁に認証情報を扱います。危険なのはアルゴリズムではなく、データがどこへ行くかです。ハッシュ化は一方向であり、暗号化ではありません。MD5とSHA-1はセキュリティに関わる用途ではすでに破綻しており、パスワードの保存にはSHA-256さえ適切な道具ではありません。bcrypt、scrypt、Argon2は、まさに遅くなるために存在しています。Base64はエンコードであって保護ではありません。誰でもデコードできるので、難読化として扱ってはいけません。JWTは持っている人なら誰でも中身を読めるため、ペイロードに秘密情報を入れてはいけません。また、トークンをデコードしても署名は検証されません。検証には鍵が必要です。このサイトのすべてはブラウザ内でローカルに動作するため、トークンやパスワードを安全に扱えるのです。
変換が静かに壊れるところ
変換のバグの多くは構文ではなく意味の問題です。郵便番号のCSV列は、表計算ソフトが数値だと推測した瞬間に先頭のゼロを失います。長いIDは浮動小数点の精度を超えてしまいます。日付は、日が先か月が先かによって意味が変わります。JSONのキーには順序がありませんが、配列にはあります。キーを並べ替えるツールは何も変えませんが、配列を並べ替えるツールはデータを変えてしまいます。Unicodeも落とし穴です。テキストはUTF-8やUTF-16、あるいはBOM付きで届くことがあり、推測を誤ったデコーダーはアクセント付きの文字を文字化けに変えてしまいます。変換を信用する前に、最初と最後の行、先頭にゼロがあるフィールド、引用符・カンマ・改行を含むフィールドを抜き取り検査してください。