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

相关推荐
向着光芒的女孩2 小时前
【IDEA】关不了的Proxy Authentication弹框探索过程
java·ide·intellij-idea
Filotimo_3 小时前
Spring Boot 整合 JdbcTemplate(持久层)
java·spring boot·后端
智商低情商凑3 小时前
Go学习之 - Goroutines和channels
开发语言·学习·golang
半桶水专家3 小时前
Go 语言时间处理(time 包)详解
开发语言·后端·golang
编程点滴3 小时前
Go 重试机制终极指南:基于 go-retry 打造可靠容错系统
开发语言·后端·golang
李慕婉学姐3 小时前
【开题答辩过程】以《“饭否”食材搭配指南小程序的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·spring·小程序
实心儿儿3 小时前
C++ —— 模板进阶
开发语言·c++
侯小啾3 小时前
理解计算机网络中的MAC地址
网络·计算机网络·macos·mac
萧鼎4 小时前
Python PyTesseract OCR :从基础到项目实战
开发语言·python·ocr
abments4 小时前
pgsql timestamp without time zone > character varying解决方案
java