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

JWT(JSON web token)的三个组成部分

每日鸡汤:每个你想要学习的瞬间都是未来的你向自己求救

前几天去考 系统架构师的考试,有一道案例分析题就是关于JWT的,作为一个前端工程师,我居然没答上来,真的气的拍大腿,但凡再努力一点呀!这次一定要记住!

不瞒你说,这篇文章都是用gpt生成的

JWT(JSON Web Token)是一种用于在网络应用间安全传输信息的开放标准(RFC 7519)。它由三个部分组成,分别是头部(Header)、载荷(Payload)和签名(Signature)

  1. 头部(Header): JWT的头部通常由两部分组成:令牌的类型(即JWT)和使用的签名算法。例如,一个简单的头部可以是: { "alg": "HS256", "typ": "JWT" } 该头部的意思是使用HS256算法进行签名,并且类型是JWT。

  2. 载荷(Payload): 载荷是JWT的第二个部分,也被称为声明(Claims)。它包含了一些被称为声明的实体(例如用户、用户角色等)的信息。载荷可以包含一组标准声明,例如: { "sub": "1234567890", "name": "John Doe", "iat": 1516239022 } 还可以包含自定义的声明,例如: { "role": "admin" }

  3. 签名(Signature): 要创建JWT的签名部分,需要使用头部和载荷以及密钥进行签名。签名用于验证消息的完整性和验证发件人的身份。例如,用于创建签名的算法可以是HMAC SHA256(使用字符串和密钥并加密生成签名),或者是RSA或ECDSA(使用公钥加密和私钥解密)等。

总结起来,JWT由三部分组成:头部(Header)、载荷(Payload)和签名(Signature)。头部用于描述签名的算法和类型,载荷用于存储信息的声明,签名用于验证消息的完整性和验证发件人的身份。

JWT和cookie都可以用于身份验证和会话管理,但它们在安全性方面有一些不同。

1. 盗用风险:JWT的盗用风险相对较高。由于JWT是无状态的,服务器不存储任何会话信息,而是将所有必要的信息存储在令牌中,因此一旦JWT被盗用,攻击者可以使用该令牌来访问被授权的资源。而cookie的盗用风险相对较低,特别是当它与HTTP-only标志一起使用时,可以防止JavaScript访问cookie,从而降低了盗用风险。

2. 防止盗用的方法:  

        - 对于JWT:使用HTTPS协议进行传输以保证通信的安全性,确保令牌不被拦截和篡改;设置JWT的过期时间,及时使其失效;在服务器端对JWT进行验证,确保它是有效且未被修改的。           - 对于cookie:使用HTTP-only标志将cookie设置为仅通过HTTP协议传输,防止JavaScript访问cookie;设置cookie的Secure标志,只在使用加密连接时发送cookie;对cookie进行签名或加密,以保证其完整性和安全性。无论是使用JWT还是cookie,都需要合理设置过期时间,并定期更换密钥或令牌,以降低盗用风险。另外,用户在使用网站或应用时也应保持警惕,避免在不可信任的环境下使用敏感信息。

相关文章:

JWT(JSON web token)的三个组成部分

每日鸡汤:每个你想要学习的瞬间都是未来的你向自己求救 前几天去考 系统架构师的考试,有一道案例分析题就是关于JWT的,作为一个前端工程师,我居然没答上来,真的气的拍大腿,但凡再努力一点呀!这次…...

CUDA学习笔记7——CUDA内存组织

CUDA内存组织 CUDA设备内存的分类与特征 内存类型物理位置访问权限可见范围生命周期1全局内存芯片外可读写所有线程和主机端由主机分配与释放2常量内存芯片外只读所有线程和主机端由主机分配与释放3纹理和表面内存芯片外一般只读所有线程和主机端由主机分配与释放4寄存器内存…...

C#把自启动程序添加到注册表中

1.Regedit自启动注册表路径 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 2.获取运行程序路径 SetAutoStart(AppDomain.CurrentDomain.FriendlyName, AppDomain.CurrentDomain.BaseDirectory); 3.添加到注册表中,如果注册表已经存…...

Java面试题(每天10题)-------连载(26)

目录 多线程篇 1、什么是FutureTask? 2、什么是同步容器和并发容器的实现? 3、什么是多线程的上下文切换? 4、ThreadLocal的设计理念与作用? 5、ThreadPool(线程池)用法与优势? 6、Concur…...

通用型 SPI-Flash 相关知识汇总(w25q16\q64,gd25q128\q256)

目录 管脚定义: 常用指令: GD25q16: gd25Q28 ​编辑 gw25q16 ​编辑 芯片丝印说明: GD系列: winbond系列: Read Identification(9FH): 常见ID: GD: ​编辑…...

鸿蒙原生应用开发-DevEco Studio超级终端模拟器的使用

一、了解超级终端模拟器支持的设备情况 该特性在DevEco Studio V2.1 Release及更高版本中支持。 目前超级终端模拟器支持“PhonePhone”、“PhoneTablet”和“PhoneTV”的设备组网方式,开发者可以使用该超级终端模拟器来调测具备跨设备特性的应用/服务,如…...

抖音AAN服务商有几家?

大家都知道抖音服务商多如牛毛,有本地生活服务商,MCN机构服务商,企业认证服务商,ISV服务商等等。但是aan服务商就屈指可数。 aan技术服务商 从关系层面讲,aan服务商的关系友好到啥程度呢,就好比微信指定了…...

10-26 maven配置

打开idea 打开setting 基于Idea创建idea项目 加载jar包:(一般需要自己去手动加入,本地仓库是没有的)...

贰[2],OpenCV函数解析

1,imread:图片读取 CV_EXPORTS_W Mat imread( const String& filename, int flags IMREAD_COLOR );//参数1(filename):文件地址 //参数2(flags):读取标志 注:ImreadModes,参数2(flags)枚举定义 enum ImreadModes { IMREAD…...

探秘Python闭包与作用域

文章目录 闭包的定义与作用LEGB规则nonlocal与global关键字在Python的世界里,理解闭包(Closure)和作用域(Scope)是提升编程技巧和深度的一大步。这篇文章将带你深入了解闭包的神秘面纱,掌握LEGB规则,并使用nonlocal与global关键字来巧妙控制变量作用域。 闭包的定义与作…...

GPT-4V:AI在教育领域的应用

OpenAI于9月25日发布了最新的GPT-4V模型,为ChatGPT引入了语音和图像功能,为用户提供更多元化的使用方式。这次更新将为用户带来更便捷、直观的交互体验,用户可以直接拍照上传并针对照片内容提出问题。OpenAI的最终目标是构建安全、有益的人工…...

自动化之Java面试

1.重写与重载的区别 重载规则: 方法名相同,参数个数或类型不同,与返回值类型无关,节约词汇,例如driver.switchTo().frame(index/nameOrId/frameElement) java的重载(overload) 最重要的应用场景就是构造器…...

Redis中的Zset类型

目录 Zset的相关命令 zadd zrange zcard zcount zrevrange zrangebyscore zpopmax bzpopmax zpopmin和bzpopmin zrank zrevrank zscore zrem zremrangebyrank zremrangebyscore 操作集合间的命令 zinterstore和zunionstore 内部编码 Zset的应用场景 Zset表…...

Python行对齐工具difflib

1 用途 1.1 功能 对比两个字符串数组之间的差异,以第一个参数为基准,与第二个参数比较。 1.2 使用场景 一个原文件,一个改过的文件,对比差异;一个纯文本,一个带格式的,对比差异;…...

Flutter利用GridView创建网格布局实现优美布局

文章目录 简介使用详解导入依赖项创建一个基本的 GridView一些参数说明使用GridView.count来构造 其他控制总结 简介 GridView 是 Flutter 中用于创建网格布局的强大小部件。它允许你在行和列中排列子小部件,非常适合显示大量项目,例如图像、文本、卡片…...

IDEA 基本配置

IDEA 基本配置 1、基本样式2、环境参数3、基本插件4、参考 1、基本样式 设置全局字体大小 配置font 字体大小:15 配置类注释 /** ** Author: ${USER}* Date: ${YEAR}-${MONTH}-${DAY} ${HOUR}:${MINUTE}* Version: 1.0.0 */配置注释keymap 添加 注释 ccm&…...

计算机组成原理平时作业一

计算机组成原理平时作业一 1.单选题 1.1计算机中使用总线结构便于增减外设,同时(c )。 a.减少了信息传输量 b.提高了信息传输量 c.减少了信息传输量的条数 d.三者均正确 答案解析: 概念规定 1.2在定点补码运算器中,…...

iOS Crash 治理:淘宝VisionKitCore 问题修复

本文通过逆向系统&#xff0c;阅读汇编指令&#xff0c;逐步找到源码&#xff0c;定位到了 iOS 16.0.<iOS 16.2 WKWebView 的系统bug 。同时苹果已经在新版本修复了 Bug&#xff0c;对于巨大的存量用户&#xff0c;仍旧会造成日均 Crash pv 1200 uv 1000&#xff0c; 最终通…...

NSSM部署window服务

nssm 下载 安装服务&#xff1a;nssm install <servicename> 启动服务&#xff1a;nssm start <servicename> 停止服务&#xff1a;nssm stop <servicename> 重启服务: nssm restart <servicename> 删除创建的servername服务: nssm remove <service…...

Go语言数据类型

文章目录 Go语言数据类型一、布尔类型二、数字类型三、字符串类型四、派生类型 Go语言数据类型 在 Go 编程语言中&#xff0c;数据类型用于声明函数和变量。 数据类型的出现是为了把数据分成所需内存大小不同的数据&#xff0c;编程的时候需要用大数据的时候才需要申请大内存…...

unix/linux source 命令,在当前的 Shell 会话中读取并执行指定文件中的命令

source 命令 (或者它的POSIX等效命令 .):在当前 Shell 环境中执行脚本 简单来说,source 命令的作用是:在当前的 Shell 会话中读取并执行指定文件中的命令。 这意味着,被 source 执行的脚本中的所有命令,就好像是你直接在当前的命令行提示符下逐行输入并执行的一样。 核…...

Java进阶---JVM

JVM概述 JVM作用&#xff1a; 负责将字节码翻译为机器码&#xff0c;管理运行时内存 JVM整体组成部分&#xff1a; 类加载系统(ClasLoader)&#xff1a;负责将硬盘上的字节码文件加载到内存中 运行时数据区(RuntimeData Area)&#xff1a;负责存储运行时各种数据 执行引擎(Ex…...

RAG理论基础总结

目录 概念 流程 文档收集和切割 读取文档 转换文档 写入文档 向量转换和存储 搜索请求构建 向量存储工作原理 向量数据库 文档过滤和检索 检索前 检索 检索后 查询增强和关联 QuestionAnswerAdvisor查询增强 高级RAG架构 自纠错 RAG&#xff08;C-RAG&#xf…...

kafka幂等生产者和事务生产者区别

#作者&#xff1a;张桐瑞 文章目录 消息交付可靠性保障什么是幂等性&#xff08;Idempotence&#xff09;&#xff1f;幂等性Producer事务事务型Producer 消息交付可靠性保障 所谓的消息交付可靠性保障&#xff0c;是指Kafka对Producer和Consumer要处理的消息提供什么样的承诺…...

【C++并发编程01】初识C++并发编程

1、并发是什么 并发是指两个或更多独立的活动同时发生&#xff0c;现实生活中常见的并发场景如边吃饭边看手机。 1.1、计算机中的并发&#xff1a; 计算机领域的并发是指在单个系统里同时执行多个独立的任务&#xff0c;而非顺序的进行一些活动。 我们在电脑上能够边听音乐边和…...

Jmeter逻辑控制器、定时器

目录 一、Jmeter逻辑控制器 ①IF(如果)控制器 作用&#xff1a; 位置&#xff1a; 参数介绍&#xff1a; 步骤&#xff1a; ②循环控制器 作用&#xff1a; 位置&#xff1a; 步骤&#xff1a; 线程组属性VS循环控制器 ③ForEach控制器 作用&#xff1a; 位置&am…...

Linux 中 m、mm、mmm 函数和 make 的区别

在 Linux 内核开发和 Android 开发中&#xff0c;构建系统通常使用 make 命令来编译和构建项目。而在 Android 开发环境中&#xff0c;还有 m、mm 和 mmm 等命令&#xff0c;这些命令是 Android 构建系统的一部分&#xff0c;提供了更高效和便捷的构建方式。以下将详细介绍这些…...

应急响应靶机-web2-知攻善防实验室

题目&#xff1a; 前景需要&#xff1a;小李在某单位驻场值守&#xff0c;深夜12点&#xff0c;甲方已经回家了&#xff0c;小李刚偷偷摸鱼后&#xff0c;发现安全设备有告警&#xff0c;于是立刻停掉了机器开始排查。 这是他的服务器系统&#xff0c;请你找出以下内容&#…...

【Web应用】若依框架:基础篇11功能详解-系统接口

文章目录 ⭐前言⭐一、课程讲解⭐二、自己动手实操⭐总结 标题详情作者JosieBook头衔CSDN博客专家资格、阿里云社区专家博主、软件设计工程师博客内容开源、框架、软件工程、全栈&#xff08;,NET/Java/Python/C&#xff09;、数据库、操作系统、大数据、人工智能、工控、网络、…...

人工智能浪潮下,制造企业如何借力DeepSeek实现数字化转型?

一、DeepSeek技术概述 DeepSeek&#xff0c;凭借其强大的深度学习和自然语言处理能力&#xff0c;能够理解复杂问题并提供精准解决方案。它不仅能够作为学习、工作、生活的助手&#xff0c;满足用户在不同场景下的需求&#xff0c;更能在制造业中发挥重要作用。通过自然语言交…...