(计算机网络)JWT三部分及 Signature 作用
JWT(JSON Web Token)是一种用于 无状态认证 的轻量级令牌,广泛用于分布式系统、单页应用(SPA)和移动端登录。
JWT 结构概览
JWT 由 三部分组成,用 .
分隔:
xxxxx.yyyyy.zzzzz
Header(头部)
Payload(载荷)
Signature(签名)
Header(头部)
作用:声明 JWT 的类型和签名算法
{ "alg": "HS256", "typ": "JWT" }
alg
:签名算法(如 HMAC SHA256)typ
:JWT 类型,固定值"JWT"
头部告诉服务器如何去验证签名,是 JWT 的元信息
Payload(载荷)
作用:存储 用户信息和声明(Claims)
常见字段:
字段 | 说明 |
---|---|
sub | 主题(通常是用户 ID) |
iat | 签发时间 |
exp | 过期时间 |
role | 用户角色或权限 |
自定义字段 | 例如 username: "Alice" |
注意:Payload 不加密,仅 Base64Url 编码,不能存储敏感信息
Signature(签名)
作用:保证 JWT 安全性,是 JWT 的核心部分
(1) 防篡改(Integrity)
确保 Header 和 Payload 未被篡改
机制:
服务器生成 JWT 时,用密钥对 Header + Payload 计算签名
客户端传回 JWT,服务器重新计算签名
如果匹配 → 数据未被修改
(2) 验证身份(Authenticity)
确保 JWT 确实由服务器签发
客户端无法伪造合法签名,因为生成签名需要 服务器密钥
(3) 支持无状态认证(Stateless Authentication)
JWT 自带验证机制,服务器无需存储 Session
非常适合 分布式系统、微服务架构
(4) 签名生成示意
Signature = HMACSHA256(base64UrlEncode(Header) + "." + base64UrlEncode(Payload),secret
)
举例说明一下,Header + Payload 是信件内容,Signature 是密封的签章,保证内容未被篡改且可信
小结
部分 | 作用 |
---|---|
Header | 指明类型和签名算法 |
Payload | 存放用户信息和声明(Claims) |
Signature | 核心安全保障: |
核心思想:JWT 是 自包含 + 可验证 的令牌,Signature 保证你可以信任客户端传回的内容。