エンコード
JWT Encoder/Decoder
JWT トークンのエンコード・デコード — ヘッダー、ペイロード、HMAC 署名、標準クレーム。
署名付きサンプル(none 以外すべて)には HTTPS が必要です — 現在このページは HTTPS なしで開かれています。
RS/PS/ES では鍵が自動的・一時的に生成されます — デモ目的のみで、再利用はできません。
署名付きサンプル(none 以外すべて)には HTTPS が必要です — 現在このページは HTTPS なしで開かれています。
Claims
A JWT (JSON Web Token) is a compact format for transmitting signed data, made of three dot-separated parts: a header, a payload, and a signature. This tool decodes any JWT and shows all three parts, and can also build a new token signed with HMAC.
Decoding does not verify the signature — reading a token's contents needs no secret key. Verifying the signature only matters when you need to trust the token as genuine.
How to use it
- Decode: paste a JWT and the tool splits it into header, payload, and signature, highlighting standard claims like exp, iat, and sub.
- Encode: fill in the header and payload, provide a secret, and get a signed HMAC token (HS256/HS384/HS512) back.
- Check expiry: the exp claim is shown as a normal date, so you can immediately tell if a token has expired.
Common uses
- Debugging authentication issues by inspecting exactly what a request's token contains.
- Checking which claims (roles, permissions, expiry) your backend issues.
- Generating a test token for local development without running an auth server.
Things to keep in mind
A JWT is not encrypted, only Base64URL-encoded — anyone can read the payload. Never put passwords or other secrets in it.
The signature protects against tampering, not against being read. For confidentiality you need extra encryption (JWE) or an HTTPS transport.
よくある質問
JWT のデコードだけで署名の検証はできますか?
できません。デコードはHeaderとPayloadをBase64URLから復元してJSONとして表示するだけで、署名の正当性は確認していません。トークンが改ざんされていないか確認するには、シークレットや公開鍵を使った署名検証が別途必要です。
exp や iat などのクレームは何を表していますか?
expはトークンの有効期限、iatは発行日時、nbfはこの日時より前は無効であることを示す標準クレームです。iss(発行者)やsub(サブジェクト)、aud(オーディエンス)も含め、いずれもPayload内のJSONフィールドとして格納されています。
入力した JWT やシークレットはサーバーに送信されますか?
いいえ、エンコード・デコード・署名検証はすべてブラウザ内のWeb Crypto APIなどで処理され、トークンやシークレットが外部に送信されることはありません。
アルゴリズムを「none」にすり替える攻撃とは何ですか?
バックエンドがトークンheaderのalgフィールドを安易に信頼していると、攻撃者はそれをnoneにすり替えて署名を取り除くことで、任意のデータを含むトークンを検証に通過させられます。信頼できるライブラリは検証時に想定アルゴリズムの明示的な指定を要求します。
重要なセッションでJWTをlocalStorageに保存すべきでない理由は何ですか?
localStorageはページ上のあらゆるJavaScriptコードからアクセスできるため、XSSに対して脆弱です。悪意あるスクリプトがトークンを盗み取る可能性があります。セッショントークンには、JavaScriptからアクセスできないhttpOnlyのcookieを使うほうが安全です。