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

身份认证: JWT和Session是什么?

一、为什么需要临时凭证?

系统面临三个核心约束:

  1. 唯一鉴权方式只有(账号,密码)

  2. 服务端不记录请求状态,服务端不知道用户已登录了

  3. 避免重复传输敏感信息,不能每次都携带(账号,密码)进行请求

解决方案:登录时下发有时效的「通行证」

二、JWT的核心原理

如果通行证是一个简单的字符串info,会发生什么问题?

答: info可以被篡改伪造,服务端无法进行身份认证

解决方案: 将info用私钥加密为Signature,将(info,Signature)捆绑下发

如果篡改或伪造,需要同时修改info和Signature两部分,而没有私钥无法正确生成Signature

 

JWT的三部分为:

  1. Header(头部):描述令牌类型和签名算法

  2. Payload(负载):存放实际数据(如用户ID、过期时间等)

  3. Signature(签名):对前两部分的加密

格式:Header.Payload.Signature(Base64URL编码拼接)

三、Session的核心原理 

服务端生成一个全局随机SessionID,并在服务器上存储(SessionID,用户信息)表示用户已登录

然后将SessionID下发到客户端, 后续请求时只需要携带SessionID

四、安全性问题 

为什么不能每次发送密码?
风险维度密码直传临时凭证
通信安全必须全程HTTPS只需保护初始登录
泄露影响相当于永久权限有时效性
客户端存储密码明文存储风险极高仅存储无意义字符串

 并不是说使用JWT、Session就绝对安全了,只是凭证具有时效性,危害较小

相关文章:

  • 【Java】异常处理
  • 信息学奥赛一本通 1547:【 例 1】区间和
  • AlphaCore GPU 物理仿真引擎内测邀请
  • 高并发系统下Mutex锁、读写锁、线程重入锁的使用思考
  • JetsonHacksNano RealSense自动安装脚本文件解析
  • 《仿盒马》app开发技术分享-- 新增地址(端云一体)
  • TLS/PSK
  • Ubantu服务器上的LiberOffice桌面版(版本24.2.7.2)如何设置中文
  • 网络编程2
  • STM32H7系列USART驱动区别解析 stm32h7xx_hal_usart.c与stm32h7xx_ll_usart.c的区别?
  • 湖北理元理律师事务所债务优化服务中的“四维平衡“之道
  • 离轴全息记录与再现
  • 【iOS】 GCD小结
  • Qt 改变窗口显示透明度 + 光标显示形状的属性(4)
  • Redis集群的脑裂问题
  • Pyhton_25_5_26
  • 海外社媒矩阵运营:IP代理配置与区域突破实战策略
  • AI工具使用的最佳实践,如何通过AI工具提高创作与工作效率
  • 涨薪技术|0到1学会性能测试第83课-Windows Sockets录制
  • C++中使用类的继承机制来定义和实现基类与派生类
  • b2b免费发布网站大全排名/最近爆发什么病毒感染
  • 网站建设seo优化/企业网站多少钱一年
  • 给我看电影全集/广州seo招聘网
  • 网站建设应该注意什么/如何优化关键词搜索
  • 手机网络营销策划书/沈阳seo收费
  • 国外做鞋子的网站/指数分布的期望和方差