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

相关推荐
Joy T6 分钟前
Spring AI 2.0 Agent 进阶:Memory、State 与 Context Engineering 常见技术全景
java·人工智能·后端·spring·agent入门·agent state
估值探索者8 分钟前
【Python量化系统工程化 #08】关了 SSH 就停?systemd 让脚本开机自启 + 异常自动拉起
java·c++·人工智能·分类·数据挖掘
RAN114267600819 分钟前
1.3第一个程序的介绍
开发语言·qt
天若有情67319 分钟前
C++花式魔改!手写头文件复刻Java语法,彻底打破编码思维定式
java·c++·语言做语言·jac++
blue_ice .1 小时前
Verilog DDS 数字信号发生器:DAC 输出模拟波形与 ADC 回采观测
开发语言·单片机·嵌入式硬件·fpga开发
远翔调光芯片^138287988721 小时前
ECP5702能芯科技PD取电芯片在市场上的优势有哪些?
开发语言·人工智能·单片机·嵌入式硬件·智能家居
西峰u2 小时前
Java单例模式|从基础到多线程安全
java·java单例模式
ClinicTech2 小时前
实验室洗瓶机的清洗系统架构与自动化控制解析
java·python
linmengmeng_13142 小时前
【总结】MyBatis-Plus批量插入与清表的正确姿势
java·spring boot·mysql·mybatis
木井巳2 小时前
【记忆化搜索】不同路径
java·算法·leetcode·深度优先·剪枝·推荐算法