エンコード

JWT Encoder/Decoder

JWT トークンのエンコード・デコード — ヘッダー、ペイロード、HMAC 署名、標準クレーム。

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

Common uses

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:トークンの構造と「デコード」の意味

よくある質問

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を使うほうが安全です。

記事: エンコード

Base64とは何か、なぜ必要で、どう動くのか

Base64がバイナリデータをASCIIテキストにどう変換するか、実際にいつ必要になるか。

Base32:Base64との違いと、どんな場面で便利か

大文字小文字を区別しないBase32のアルファベットと、Base64より便利な場面。

URL Encode/Decode:リンクにおけるパーセントエンコーディング

アドレスやパラメータ中の特殊文字が%XXの並びに変わる仕組み。

HTML Entities:特殊文字を安全に表示する方法

< > &をエスケープすべき理由と、それがマークアップの破損をどう防ぐか。

Unicode Escape:\uXXXX形式が意味するもの

JSONやJS文字列に現れる\u0041のようなシーケンスがどこから来て何を意味するか。

ROT13とシーザー暗号:単純な文字の置き換え

13文字分のシフトがROT13を自己反転にする理由と、今なお使われる理由。

Punycode:国際化ドメイン名がDNSでどう動くか

非ラテン文字を含むドメインがxn--プレフィックス付きのASCII形式にどう変わるか。

モールス符号:テキストが点と線に変わる仕組み

文字を点と線でエンコードする原理と、モールス符号が今どこで使われているか。

Data URI:画像をコードに直接埋め込むべき場面

Data URIがファイルの内容をHTMLやCSSに直接埋め込む仕組みと、それが有効な場面。

Gzip + Base64:テキストとして送るためのデータ圧縮

圧縮されたバイナリデータをテキストフィールドに入れる前にBase64でもエンコードする理由。

XML Entities:XML文書内の文字をエスケープする

これがないと解析時に文書が壊れる、XMLの5つの必須エンティティ。