JWT デコーダー 🔒 データがブラウザの外に出ることはありません。

JWTのheaderとpayloadをデコードし、有効期限を確認。どこにも送信されません。

このツールについて

JWT(JSON Web Token)は、ドットで区切られたheader、payload、署名の3つの部分から構成されます。headerとpayloadはBase64URLエンコードされたJSONに過ぎず、トークンを持つ誰もが読めるため、JWTのpayloadに機密データを入れてはいけません。本ツールはトークンをデコードし、有効期限(exp/nbf)を確認し、各標準claimを解説します。

多くのJWTデコーダーと異なり、ここではすべてが100%ブラウザ内で動作します。セッション資格情報を含むトークンがサーバーに送信されることはありません。

よくある質問

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

いいえ。標準的な JWT は署名されているだけで、暗号化はされていません。header と payload は単なる Base64URL であり、鍵がなくても誰でもデコードして読めます。JWT の payload に秘密情報を入れてはいけません。

「署名を検証しました」は実際に何を証明していますか?

これはトークンの header と payload が、シークレット(または秘密鍵)を持つ者が署名して以降、改ざんされていないことを証明します。中の claim が本当に正しいかどうかは何も証明しません——それはバックエンドが別途行う認可判断です。

このツールが HS256/HS384/HS512 のトークンしか検証できないのはなぜですか?

これらは対称アルゴリズムであり、検証には署名に使ったのと同じ共有シークレットがあれば十分で、それはこのページに安全に入力できます。RS256/ES256 などはサーバーから決して外に出してはいけない秘密鍵を使うため、このツールでは検証できません。

header に "alg": "none" と表示されているのはどういう意味ですか?

そのトークンはまったく署名されていないことを意味します。誰でも payload を編集しても正常に「デコード」されてしまいます。alg: none のトークンを受け入れるサーバーには重大な脆弱性があります。このツールは警告でそれを知らせます。

デコードや検証の際、トークンやシークレットはサーバーへ送信されますか?

いいえ。デコードと署名検証はどちらも Web Crypto API を使ってブラウザ内でローカルに実行されます。入力したシークレットが保存されたり送信されたりすることはありません。