JWT/JWS/JWE

JWT(JSON Web Token):一种基于JSON格式,用于在Web应用中安全传递用户身份验证和授权信息的标准令牌,可以包含签名(JWS)和加密(JWE)的信息

MacAlgorithm(Message Authentication Code Algorithm):消息认证码算法

  • HMAC(Hash-based Message Authentication Code):使用SHA-2家族不同长度的散列函数
    • HS256:散列长度为256
    • HS384:散列长度为384
    • HS512:散列长度为512

SignatureAlgorithm:数字签名算法

  • RSA(Rivest-Shamir-Adleman):使用SHA-2家族不同长度的散列函数
    • RS256:散列长度为256
    • RS384:散列长度为384
    • RS512:散列长度为512
  • RSA-PSS(Probabilistic Signature Scheme):基于RSA,提供了额外的安全属性
    • PS256:散列长度为256
    • PS384:散列长度为384
    • PS512:散列长度为512
  • ECDSA(Elliptic Curve Digital Signature Algorithm):椭圆曲线数字签名算法
    • ​​​​​​​ES256:使用P-256曲线和SHA-256哈希算法
    • ES384:使用P-384曲线和SHA-384哈希算法
    • ES512:使用P-521曲线和SHA-512哈希算法
  • EdDSA(Edwards-curve Digital Signature Algorithm):基于Edwards曲线的数字签名算法

组成头部经过Base64Url编码.载荷经过Base64Url编码.签名

头部(Header):描述JWT的元数据,比如签名算法(HS256)和类型(JWT)

{"alg":"HS256","typ":"JWT"}

载荷(Payload):包含实际的数据,包括签发人、发行时间、到期时间、自定义数据(claims,声明)

{"sub":"1234567890","name":"John Doe","iat":1516239022}

签名(Signature):由前面两部分(Header和Payload的Base64Url编码后的内容)通过预先指定的密钥和签名算法计算而来,用于验证JWT的完整性和真实性

SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

JWT官网https://jwt.io/

认证流程图

JWS(JSON Web Signature):用于对JWT进行数字签名,保证了数据的完整性

JWE(JSON Web Encryption):用于对JWT载荷内容进行加密保护,保证了数据的隐私性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/797392.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024/4/1—力扣—两数相除

代码实现&#xff1a; 思路&#xff1a;用减法模拟除法 // 用减法模拟除法 int func(int a, int b) { // a、b均为负数int ans 0;while (a < b) { // a的绝对值大于等于b&#xff0c;表示此时a够减int t b;int count 1; // 用来计数被减的次数// t > INT_MIN / 2:防止…

力扣由浅至深 每日一题.23 Nim 游戏

不要美化自己当初没有选择的那一条路 —— 24.4.7 Nim 游戏 你和你的朋友&#xff0c;两个人一起玩 Nim 游戏&#xff1a; 桌子上有一堆石头。你们轮流进行自己的回合&#xff0c; 你作为先手 。每一回合&#xff0c;轮到的人拿掉 1 - 3 块石头。拿掉最后一块石头的人就是获胜者…

京东获得JD商品详情 API 接口(jd.item_get)的详细使用说明,包括如何通过该接口获取商品的基本信息,包括名称、品牌、产地、规格参数等

通过调用京东商品详情API接口&#xff0c;开发者可以获取商品的基本信息&#xff0c;如名称、品牌、产地、规格参数等。此外&#xff0c;还可以获取商品价格信息&#xff0c;包括原价、促销价和活动信息等。同时&#xff0c;该接口还支持获取商品的销量、评价、图片、描述等详细…

IO学习笔记

1 什么是IO 对于任何程序设计语言而言&#xff0c;输入输出(Input/Output)系统都是非常核心的功能。程序运行需要数据&#xff0c;数据的获取往往需要跟外部系统进行通信&#xff0c;外部系统可能是文件、数据库、其他程序、网络、IO设备等等。外部系统比较复杂多变&#xff0…

微信如何识别图片中的文字?3个文字识别技巧分享

微信如何识别图片中的文字&#xff1f;微信识别图片中的文字是一项非常实用的功能&#xff0c;特别是在需要快速提取图片中的信息时。不仅如此&#xff0c;微信识别图片文字的功能也极大地提升了人们的工作和学习效率。在办公场景中&#xff0c;它可以快速将纸质文档、名片、合…

postgresql数据库|数据整合的好工具--Oracle-fdw的部署和使用

概述 Oracle_fdw 是一种postgresql外部表插件&#xff0c;可以读取到Oracle上面的数据。是一种非常方便且常见的pg与Oracle的同步数据的方法 Oracle_fdw 适用场景&#xff1a; Oracle_fdw 是一个开源的 Foreign Data Wrapper (FDW)&#xff0c;主要用于在 PostgreSQL 数据库中…

【PRO3.0 】电子面单模版请求失败问题处理

注意&#xff1a;&#xff1a;改完重启守护进程 1、文件地址&#xff1a;crmeb/services/express/storage/Express.php 行数 202 行左右&#xff0c; 方法名&#xff1a;temp() 如下如图把 POST 改成 GET 2、crmeb/services/HttpService.php 行数&#xff1a;81 行左右 方…

【MySQL】解决修改密码时报错:--skip-grant-tables option

首先我们先了解到为何会出现如上报错&#xff1a; 是因为我们在第一次配置MySQL中的my.cnf时&#xff0c;我们添加了–skip–grant-tables 选项 跳过验证身份的选项 所以&#xff0c;我们第一次登录成功后想要修改密码会出现如下报错&#xff1a; [hxiZ0jl69kyvg0h181cozuf5Z…

Vue3:自定义响应式数据-customRef(面试常问,重点!!!)

一、情景说明 我们知道&#xff0c;Vue的响应式数据效果就是&#xff0c;页面和变量的关联效果 页面一修改变量值&#xff0c;引用变量的地方就会同时更新 那么&#xff0c;假设我们有这样一个需求&#xff0c;就是&#xff0c;让响应式变量在页面修改后&#xff0c;过2秒&am…

使用Springfox Swagger实现API自动生成单元测试

目录 第一步&#xff1a;在pom.xml中添加依赖 第二步&#xff1a;加入以下代码&#xff0c;并作出适当修改 第三步&#xff1a;在application.yaml中添加 第四步&#xff1a;添加注解 第五步&#xff1a;运行成功之后&#xff0c;访问相应网址 另外&#xff1a;还可以导出…

UI自动化框架搭建以及面试题详解(上)

UI自动化框架搭建以及面试题 UI自动化面试题框架面试题那你讲下如何搭建现成的框架公司里面的框架是你搭建的么请结合你的项目讲解一下你的框架是如何搭建的 PO模式什么是 PO 模式PO 模式的封装原则有哪些 DDT驱动模式什么的项目适合ddt ddt四种模式ddt处理各种类型数据 自动化…

Lesson 9 Transformer

听课&#xff08;李宏毅老师的&#xff09;笔记&#xff0c;方便梳理框架&#xff0c;以作复习之用。本节课主要讲了seq2seq model简介&#xff0c;以及应用&#xff0c;架构&#xff08;包括encoder和decoder&#xff0c;encoder和decoder之间如何协作&#xff09;&#xff0c…

设计模式——组合模式08

组合模式&#xff1a;把类似对象或方法组合成结构为树状的设计思路。 例如部门之间的关系。 设计模式&#xff0c;一定要敲代码理解 抽象组件 /*** author ggbond* date 2024年04月06日 08:54* 部门有&#xff1a;二级部门&#xff08;下面管三级部门&#xff09; 三级部门 &a…

【Spring】AOP——使用@around实现面向切面的方法增强

工作业务中&#xff0c;有大量分布式加锁的重复代码&#xff0c;存在两个问题&#xff0c;一是代码重复率高&#xff0c;二是容易产生霰弹式修改&#xff0c;使用注解和AOP可以实现代码复用&#xff0c;简化分布式锁加锁和解锁流程。 around注解是AspectJ框架提供的&#xff0c…

uniapp方法二 激活微信小程序自带的分享功能

1、配置 onLoad(){wx.showShareMenu({withShareTicket:true,//设置下方的Menus菜单&#xff0c;才能够让发送给朋友与分享到朋友圈两个按钮可以点击menus:["shareAppMessage","shareTimeline"]}) },2、事件 onShareAppMessage(res) {if (res.from butto…

1、认识MySQL存储引擎吗?

目录 1、MySQL存储引擎有哪些&#xff1f; 2、默认的存储引擎是哪个&#xff1f; 3、InnoDB和MyISAM有什么区别吗&#xff1f; 3.1、关于事务 3.2、关于行级锁 3.3、关于外键支持 3.4、关于是否支持MVCC 3.5、关于数据安全恢复 3.6、关于索引 3.7、关于性能 4、如何…

Hashmap的工作原理

HashMap是一种常见的键值对存储数据的数据结构&#xff0c;它的工作原理可以简单概括为以下几个步骤&#xff1a; 哈希函数&#xff1a;当我们向HashMap中存入一个键值对时&#xff0c;首先会通过哈希函数将键映射到一个索引位置上。这个哈希函数将键转化为一个整数&#xff0c…

运放知识点总结

目录 一、运放基础知识 (operational amplifier) 1.由来 2.用途 3.符号 4.内部结构​编辑 5.虚短虚断 二、同相放大电路 &#xff08;Non-inverting Amplifier&#xff09; 三、反相放大电路 (Inverting Amplifier) 四、差分放大电路 (Difference Amplifier) 五、加法…

【Rust】——Trait

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

移动端-2(媒体查询+Less基础+rem适配方案+响应式布局+Bookstrap前端开发构架)

目录 1.rem布局 2.媒体查询 什么是媒体查询 语法规范 mediatype查询类型 关键字 媒体特性 3.Less基础 维护css的弊端 less介绍 less变量 less嵌套 less运算 4.rem适配方案 rem实际开发适配方案1 设计稿常见尺寸宽度 动态设置html标签font-size大小 元素大小取…