JWT原理解析_变压吸附的原理

JWT原理解析_变压吸附的原理什么是JWTJSONWebToken(JWT),是一个开放安全的行业标准,用于多个系统之间传递安全可靠的信息.为什么会有JWT在很久很久以前…常见的访问模式是这种的。这个时候因为用户都是通过电脑上的浏览器访问服务端,而由于浏览器有cookie机制,服务端有session机制,所以这个流程是行得通的,伪流程如下随着乔布斯时代的来临,智能手机,微信小程序等用户终端越来越多,服务端需要…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

什么是JWT

JSON Web Token(JWT),是一个开放安全的行业标准,用于多个系统之间传递安全可靠的信息.

为什么会有JWT

在很久很久以前…常见的访问模式是这种的。
在这里插入图片描述
这个时候因为用户都是通过电脑上的浏览器访问服务端,而由于浏览器有cookie机制,服务端有session机制,所以这个流程是行得通的,伪流程如下
在这里插入图片描述
随着乔布斯时代的来临,智能手机,微信小程序等用户终端越来越多,服务端需要同时支持pc端,APP端,微信小程序端等的访问,那么现在的访问模式变成这样了
在这里插入图片描述
而对于APP端和小程序端来说,cookie机制就不友好了。那么服务器如何知道用户是否登录呢?这个时候就需要一种其他的方式。它就是JWT。

JWT的原理浅析

在这里插入图片描述
乍一看好像只是用这个token串来替换吊了sessionid,其实不然,区别大概有以下几点

  1. 对应sessionid来说服务端是有保存的,而token服务端是没有保存的。而仅仅是通过算法解析来验证合法性
  2. 传统的sessionid机制实现过于复杂,且可能是tomcat等容器默认实现了,要改动也是很不方便的。所以用token

JWT原理深入解析

jwt生成的token串如下所示
在这里插入图片描述
一般而言由三个小数点分割为三段。
第一段为头部信息,是非加密的,上诉看起来不是明文是因为有做Base64URL转码。通常明文如下

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

指明了token的加密算法等信息

第二段为用户自定义信息,通常你可以在这里放入username等信息,是非加密的,上诉看起来不是明文是因为有做Base64URL转码,所以不宜存储用户的手机号等私密信息。

第三段为签名,使用 Header 里面指定的签名算法(默认是 HMAC SHA256),按照下面的公式产生签名。

HMACSHA256(
  base64UrlEncode(header) + "." +
  base64UrlEncode(payload),
  secret)

该部分用以给服务器验证token的合法性。由于签名秘钥只有服务端有,所以别人没法伪造和篡改token.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/180809.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月17日 下午11:16
下一篇 2022年10月17日 下午11:36


相关推荐

  • Android 代码设置RelativeLayout元素居中

    Android 代码设置RelativeLayout元素居中RelativeLayoutrelativeLayout=newRelativeLayout(this);RelativeLayout.LayoutParamsrlp=newRelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_C

    2022年7月17日
    16
  • 并发用户数,吞吐量计算公式

    并发用户数,吞吐量计算公式一 经典公式 1 nbsp nbsp 一般来说 利用以下经验公式进行估算系统的平均并发用户数和峰值数据 nbsp nbsp 1 平均并发用户数为 C nL T nbsp 2 并发用户数峰值 C C 3 根号 C nbsp nbsp nbsp C 是平均并发用户数 n 是 loginsession 的数量 L 是 loginsession 的平均长度 T 是值考察的时间长度 nbsp nbsp nbsp C 是并发用户数峰值 nbsp nbsp nbsp 举例 1 假设系统 A 该系统有 3000 个用户 平均每天大概

    2026年3月26日
    2
  • WSDL 详解_wsdl文件

    WSDL 详解_wsdl文件1.WebService的一些相关概念webservice:远程调用的一种方案。一种解决跨平台、跨语言间的分布式系统的集成(整合)方案esb:enterpriseservicebus企业服务总线soap:simpleobjectaccessprotocal简单对象访问协议(http+xml)soa:serviceorientedacrchiet

    2025年6月8日
    6
  • python random函数

    python random函数调用 random 前要 importrandom 模块 测试 1 random random 生成一个随机的浮点数 在 0 1 之间 2 random sample 从指定的序列或列表中 随机的截取指定长度的片段 测试 1 序列 测试 2 列表 3 random randint 随机生成一个 int 类型的数 可以指

    2026年3月19日
    2
  • vue代码编辑器组件_vue activiti

    vue代码编辑器组件_vue activitivue-monaco-editorMonacoEditorVueComponentBasedoffReactMonacoEditorSetupnpminstallvue-monaco-editor–saveSimpleVueUseimportMonacoEditorfrom’vue-monaco-edito…

    2022年8月14日
    9
  • linux w3m命令

    linux w3m命令w3m 是个开放源代码的命令行下面的网页浏览器 一般的 linux 系统都会自带这个工具 可以通过它在命令行下面浏览网页 本文介绍这个工具的使用方法 功能 w3m 是个开放源代码的命令行下面的网页浏览器 它支持表格 框架 SSL 连线 颜色 如果是在适当的 terminal 上 甚至还支持 inlineimage 这个软件通常尽量呈现出网页本来的编排 常用交互式命令 下面列出启动 w3m

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号