编码解码哈希加密格式化时间转换开发生成文本处理网络工具其他工具
首页 / 名词解释 / JWT

JWT

JWT(JSON Web Token)是一种紧凑、URL 安全的令牌格式,由 RFC 7519 定义,常用于登录鉴权和服务间传递身份信息。它由三段用 . 连接的字符串组成:Header.Payload.Signature,每段都是 Base64Url 编码。Header 说明签名算法(如 HS256),Payload 存放声明(claims),Signature 用于校验前两段是否被篡改。

常见的 Payload 声明包括:

服务端用密钥(HMAC 对称)或私钥(RSA/ECDSA 非对称)生成签名,验证时重新计算并比对,从而确认令牌可信且未被改动。

最大的误区是把 JWT 当成"加密":它只是编码,Payload 任何人 Base64 解一下就能读,因此不能放密码等敏感信息。签名只保证完整性和来源,不保证保密性。此外,JWT 一旦签发就难以主动作废,应设置较短的 exp;验证时还要固定校验算法,不要盲目信任令牌里自带的 alg(防 alg:none 攻击)。用 jwt-decode 工具可以快速拆开查看 Header 和 Payload,但解码不等于验证签名。

常见问题

JWT 是加密的吗?放在里面的数据安全吗?
不是。JWT 默认只做 Base64Url 编码,并非加密,Payload 谁都能解开阅读。它靠签名保证内容不被篡改,但不保证保密,所以别在里面放密码、密钥等敏感数据。
用户退出登录或令牌泄露了,怎么让 JWT 失效?
JWT 是无状态的,签发后服务端默认无法单独作废某个令牌。常见做法是把 exp 设短、配合 refresh token,或在服务端维护黑名单 / 令牌版本号来强制失效。
jwt-decode 能验证令牌是不是真的吗?
不能。解码只是把三段 Base64 还原成明文,方便你查看 Header 和 Payload;令牌是否合法需要用密钥重新计算签名并校验 exp 等声明,那要由服务端完成。

相关工具

相关名词