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

相关推荐
泡泡以安17 小时前
【Android逆向工程】第3章:Java 字节码与 Smali 语法基础
android·java·安卓逆向
毕设源码-朱学姐1 天前
【开题答辩全过程】以 工厂能耗分析平台的设计与实现为例,包含答辩的问题和答案
java·vue.js
喵了meme1 天前
C语言实战4
c语言·开发语言
码界奇点1 天前
Python从0到100一站式学习路线图与实战指南
开发语言·python·学习·青少年编程·贴图
9ilk1 天前
【C++】--- 特殊类设计
开发语言·c++·后端
sali-tec1 天前
C# 基于halcon的视觉工作流-章68 深度学习-对象检测
开发语言·算法·计算机视觉·重构·c#
Spring AI学习1 天前
Spring AI深度解析(9/50):可观测性与监控体系实战
java·人工智能·spring
java1234_小锋1 天前
Spring IoC的实现机制是什么?
java·后端·spring
生骨大头菜1 天前
使用python实现相似图片搜索功能,并接入springcloud
开发语言·python·spring cloud·微服务
绝不收费—免费看不了了联系我1 天前
Fastapi的单进程响应问题 和 解决方法
开发语言·后端·python·fastapi