当前位置: 首页 > 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
)

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

http://www.xdnf.cn/news/531667.html

相关文章:

  • Linux 常用命令
  • 华为云Flexus+DeepSeek征文|基于华为云Flexus云服务的云服务器单机部署Dify-LLM应用开发平台
  • 力扣HOT100之二叉树:230. 二叉搜索树中第 K 小的元素
  • 【高德开放平台-注册安全分析报告】
  • LeetCode-滑动窗口-找到字符串中所有字母异位词
  • Swift 二分查找实战:精准定位第一个“Bug版本”(LeetCode 278)
  • 【栈 / 链表板子题】
  • 解决 uv run 时 ModuleNotFoundError: No module named ‘anthropic‘ 的完整指南
  • 【OSS】如何使用OSS提供的图片压缩服务
  • IDEA+AI 深度融合:重构高效开发的未来模式
  • 缺乏团队建设活动,如何增强凝聚力?
  • 隨筆20250519 Async+ThreadPoolTaskExecutor⾃定义线程池进阶实战
  • 基于卫星遥感的耕地非农化监测的技术原理简述
  • 论坛系统(中-2)
  • 【HTML】【面试提问】HTML面试提问总结
  • 网球机器人自动捡球机械结构设计与创新研究
  • 如何git clone下来自定义文件名
  • Java设计模式之享元模式:从基础到高级的全面解析
  • Python集合
  • 第35周Zookkeeper+Dubbo 面试题精讲
  • RISC-V 开发板 MUSE Pi Pro PCIE 测试以及 fio 崩溃问题解决
  • Spring Boot 集成 druid,实现 SQL 监控
  • C语言实现android/linux按键模拟
  • 纸上流年:Linux基础IO的文件理解与操作
  • 本地部署dify+ragflow+deepseek ,结合小模型实现故障预测,并结合本地知识库和大模型给出维修建议
  • Node.js聊天室开发:从零到上线的完整指南
  • Httphelper: Http请求webapi小记
  • 达梦数据库对json字段进行操作
  • 【Git】分支管理
  • Go语言八股文之Mysql优化