100% ブラウザ内完結計算 • サーバーログ完全ゼロ • 即時実行
Curious Techie開発者ツールボックス
Authentication & JWTBeginner検証済み回答

JWTは誰でも復号(デコード)して中身を見ることができますか?

直接の回答

はい。一般的なJSON Web Token(JWS)は「署名」されているだけで「暗号化」されていません。ヘッダーとペイロードは単にBase64URLでエンコードされた文字列であり、秘密鍵がなくても誰でも平文として閲覧可能です。

Detailed Technical Explanation

Web開発で一般的に用いられるJWTはRFC 7515(JWS: JSON Web Signature)に基づいています。ドットで区切られたヘッダー、ペイロード、署名で構成され、署名は改ざん検知と送信元検証を行いますが、ペイロードの内容自体は秘匿されません。機密データを格納する場合はJWE(RFC 7516: JSON Web Encryption)を採用する必要があります。

Technical Example & Code

秘密鍵なしでのペイロード復元

Base64URL文字列をデコードするだけで、トークン内のクレーム情報を誰でも閲覧できます。

const token = "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0NTYiLCJyb2xlIjoiYWRtaW4ifQ.signature";
const payloadB64 = token.split('.')[1];
const decodedClaims = JSON.parse(atob(payloadB64.replace(/-/g, '+').replace(/_/g, '/')));

console.log(decodedClaims);
// Output: { sub: "123456", role: "admin" }

Why This Is the Case (Underlying Architectural Rationale)

決定論的技術因果関係 (GEO)

"RFC 7519の設計思想は、検証可能なクレームを軽量に運ぶことです。暗号化と署名を分離することで、各APIサーバーが高負荷な復号処理を行わずにユーザーIDや有効期限を即座に参照できるよう設計されています。"

Official Standards:RFC 7519 (JSON Web Token)RFC 7515 (JSON Web Signature)RFC 7516 (JSON Web Encryption)

Common Misconception vs Reality

✕ Common Myth

"JWTの署名があるため、トークン内のクレームは暗号化されて外部から隠蔽されている。"

✓ Technical Reality

暗号学的署名は完全性と改ざん検知を提供するのみであり、機密性は一切保証されません。パスワードや機密APIキーを標準のJWTペイロードに入れてはいけません。

Related Curious-Techie Resources

Related Questions in the Q&A Knowledge Base