(计算机网络)JWT三部分及 Signature 作用

JWT(JSON Web Token)是一种用于 无状态认证 的轻量级令牌,广泛用于分布式系统、单页应用(SPA)和移动端登录。


JWT 结构概览

JWT 由 三部分组成 ,用 . 分隔:

xxxxx.yyyyy.zzzzz

  1. Header(头部)

  2. Payload(载荷)

  3. 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 未被篡改

  • 机制:

    1. 服务器生成 JWT 时,用密钥对 Header + Payload 计算签名

    2. 客户端传回 JWT,服务器重新计算签名

    3. 如果匹配 → 数据未被修改

(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 保证你可以信任客户端传回的内容。

相关推荐
孟陬3 小时前
国外技术周刊 #1:Paul Graham 重新分享最受欢迎的文章《创作者的品味》、本周被划线最多 YouTube《如何在 19 分钟内学会 AI》、为何我不
java·前端·后端
想用offer打牌3 小时前
一站式了解四种限流算法
java·后端·go
华仔啊3 小时前
Java 开发千万别给布尔变量加 is 前缀!很容易背锅
java
也些宝4 小时前
Java单例模式:饿汉、懒汉、DCL三种实现及最佳实践
java
Nyarlathotep01135 小时前
SpringBoot Starter的用法以及原理
java·spring boot
wuwen55 小时前
WebFlux + Lettuce Reactive 中 SkyWalking 链路上下文丢失的修复实践
java
SimonKing5 小时前
GitHub 10万星的OpenCode,正在悄悄改变我们的工作流
java·后端·程序员
Seven976 小时前
虚拟线程深度解析:轻量并发编程的未来趋势
java
雨中飘荡的记忆16 小时前
ElasticJob分布式调度从入门到实战
java·后端