Webアプリケーションの認証で発行される「ey」から始まる不気味な文字列、JWT(JSON Web Token)。それは強固な暗号に見えますが、実は単にエンコード(変換)されて読みにくくなっているだけの無防備なデータです。
このツールは、開発中にサーバーから突きつけられた解読不能な通行証を、ブラウザという安全な密室空間で解体し、有効期限やユーザー権限といった隠された真実(JSON)を白日の下に晒します。通信を行わないため、本番環境の機密トークンを投下しても一切の痕跡を残しません。
目次を開く
🔐 JWTデコーダー
広大なペイロードの海を、指先ひとつで優雅に泳ぎ切るトラックボールはいかがでしょうか。
スポンサーリンク
暗号の壁を突破する利用シーン
認証エラーに阻まれ、システムから冷たく突き放された時。原因究明のためのメスとして機能します。
| 「401 Unauthorized」の迎撃 | API通信で認証エラーが起きた際、送受信しているトークンを解剖し、有効期限(exp)が切れていないか、あるいはユーザー権限が正しく付与されているかを調査します。 |
|---|---|
| フロントエンド開発時の確認 | バックエンドのエンジニアから「トークンにユーザーIDを含めておいた」と言われた際、それが事実かどうかをブラウザ上で即座に検証します。 |
| セキュリティ意識の啓蒙 | 「JWTは暗号化されていないため、ペイロードに平文でパスワードを含めてはいけない」という恐ろしい事実を、後輩エンジニアに視覚的に見せつけるために使います。 |
機能・仕様:不可逆ではない、ただのエンコード
JWTの構造を正確に切り分け、美しいインデントを与えます。
- Base64Urlの正確な復号
通常のBase64とは異なる「Base64Url」の特殊な記号置換を内部で処理し、文字化けや欠損を引き起こすことなくJSONデータをサルベージします。 - 3つの部位を独立表示
ドット(.)で区切られたJWTの「ヘッダー」「ペイロード」「署名」を個別のエリアに展開し、どこに何の情報が格納されているかを直感的に把握させます。 - 絶対的なオフライン処理
個人情報が含まれる可能性のあるトークンを、外部のAPIやサーバーに送信することは致命的なセキュリティインシデントです。本ツールはJavaScriptの力のみで、あなたの端末内でのみ密かに解剖を完了させます。
早見表:ペイロードに潜む主要なクレーム(要素)
デコードされたJSONの中に現れる、暗号めいた略語(クレーム)の正体です。
| キー(略語) | 意味と役割 |
|---|---|
| exp (Expiration Time) | トークンの「有効期限」です。UNIXタイムスタンプ(1970年からの秒数)で記載されており、この時間を1秒でも過ぎるとトークンはただのゴミになります。 |
| iat (Issued At) | トークンが「発行された日時」です。これが未来の時間になっている場合、サーバー間の時刻同期が狂っている恐ろしい事態を意味します。 |
| sub (Subject) | トークンの「主体」です。通常は、認証されたユーザーの一意なID(UUIDなど)が格納されます。 |
よくある質問 (FAQ)
Q 内容を書き換えて再度JWTを作成(エンコード)できますか?
A. いいえ、当ツールは解読(デコード)に特化しています。JWTは内容を書き換えると、末尾の「署名(Signature)」と一致しなくなり不正なトークンとして弾かれます。再構築するにはサーバー側の秘密鍵が必要となるため、ブラウザ上で偽造することはできません。
Q 署名(Signature)の部分がデコードされません。
A. 署名部分はJSONではなく、ヘッダーとペイロードから算出された「ハッシュ値」であるため、元の情報に復元することは数学的に不可能です。そのため、文字列のまま表示しています。
開発者のひとりごと
👨💻
「ey」から始まる長い文字列を見た時、多くの人々はそれを解読不能な強固な暗号だと錯覚します。しかし、それは大きな間違いです。JWTのヘッダーとペイロードは、ただBase64で「エンコード(変換)」されているだけであり、「暗号化」されているわけではありません。
つまり、誰でもこのツールを通せば、その中身を覗き見ることができるのです。もしあなたがペイロードの中に、ユーザーのパスワードやクレジットカード番号をそのまま突っ込んでいるとしたら、それは透明なガラス張りの金庫に現金を置いているのと同じです。
JWTは「改ざんを防ぐ」ための仕組みであり、「中身を隠す」ための仕組みではありません。このツールで自身のトークンを丸裸にし、その恐るべき真実をその目で確認してください。