当前位置: 首页 > news >正文

JWT : JSON Web Token

在这里插入图片描述

JSON Web Token 是一种开放标准(RFC 7519),用于在网络应用环境中 以紧凑且自包含的方式安全地传递信息。常用于身份认证与信息交换。

JWT 实际上确实是明文的,签名只做完整性校验和身份验证。

文章目录

    • 使用场景
        • 优势
    • 结构
        • Header
        • Payload
        • Signature(签名)

使用场景

  • 身份认证(Authentication)
    • 用户登录后,服务端生成 JWT 并返回给客户端
    • 客户端将 JWT 存储在 localStorage 或 cookie 中,后续请求携带 JWT(通常放在 HTTP Header 中)
  • 信息交换
    两个系统之间安全传递信息(内容经过签名,可以验证真实性)

JWT签名只做完整性校验和身份验证,确保:
token 没有被篡改;token 确实是由服务器签发的(前提是密钥安全)
它并不会加密 payload,任何人只要拿到 token,就可以解码出其中的数据。

JWE(JSON Web Encryption 加密
):对 JWT 加密(复杂但更安全)

优势
  • 无需服务端存储状态(无状态认证)
    其实服务器生成一个 token密钥 给客户端,也能认证,不过服务器需要维护这个 token 是谁的。
  • 基于标准,跨语言、跨平台
  • 自包含(包含所需用户信息)

缺点:

  • 不易撤销(除非使用黑名单机制)
  • 长 token 可能影响传输性能
  • token 一旦泄露,安全风险高

结构

header.payload.signature
Header
{"alg": "HS256","typ": "JWT"
}
  • alg 表示签名使用的算法(如 HS256 或 RS256)
  • typ 表示令牌类型,固定为 JWT

编码后为 Base64Url 字符串。

Payload

负载

{"sub": "1234567890","name": "Alice","iat": 1516239022
}
  • 包含用户信息(如 sub 是主题)
  • 可以包括自定义字段,也有一些标准字段(如 exp 过期时间)
Signature(签名)
HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload),secret
)

用来验证消息是否被篡改,服务端用密钥对前两部分签名,接收方可验证

相关文章:

  • 中科固源Wisdom平台发现NASA核心飞行控制系统(cFS)通信协议健壮性缺陷!
  • python使用jsonpath-ng库操作json数据
  • 超级管理员租户资源初始化与授权管理设计方案
  • vue项目启动报错
  • 从代码学习深度学习 - 用于预训练词嵌入的数据集 PyTorch版
  • docker默认存储迁移
  • 【Nuxt3】安装 Naive UI 按需自动引入组件
  • 【QT】一个界面中嵌入其它界面(一)
  • PyQt5绘图全攻略:QPainter、QPen、QBrush与QPixmap详解
  • 第十六届蓝桥杯复盘
  • P2P最佳网络类型
  • Fiddler无法抓包的问题分析
  • C语言学习笔记之条件编译
  • # idea 中如何将 java 项目打包成 jar 包?
  • 国家互联网信息办公室关于发布第十一批深度合成服务算法备案信息的公告
  • [架构之美]从PDMan一键生成数据库设计文档:Word导出全流程详解(二十)
  • GO语言学习(五)
  • vue3自适应高度超出折叠功能
  • 【操作系统面经】持续更新ing
  • FART 主动调用组件设计和源码分析
  • 经济日报:人工智能开启太空经济新格局
  • 多个“首次”!上市公司重大资产重组新规落地
  • 上海博物馆展览进校园,“小先生”传递文物知识
  • 贵州仁怀通报“正新鸡排鸡腿里全是蛆”:已对同类产品封存送检
  • 长期吃太饱,身体会发生什么变化?
  • 董军同德国国防部长举行会谈