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


相关推荐

  • 如何检测wifi信号强度以及辐射强度_wifi信号强度标准

    如何检测wifi信号强度以及辐射强度_wifi信号强度标准原文网址:http://jingyan.baidu.com/article/90895e0fe9616164ec6b0b88.html当我们在使用wifi上网时,在某些角落会出现无wifi信号,或是时

    2022年8月2日
    9
  • JointJS动态流程图

    JointJS动态流程图nbsp nbsp 最近公司有个导航项目需要做个流程图比较复杂的那种 作为一个前端小菜也是很蒙的 要求就两条一 动态加载流程图 二 动态连线 这两点要求也是难住了一阵呢 最后选择了 jointJS 选着原因官网 API 很详细 代码量比较少封装起来使用也很便捷 进阶文档基础略过 没接触过得可以去在官网先学习一下 废话不多少直接上硬菜 nbsp nbsp 我这块写了两个一个是节点型流程图和关系行流程图 源码在下一篇文章可以

    2026年3月18日
    2
  • 讯飞文书 – 科大讯飞发布的AI公文写作工具

    讯飞文书 – 科大讯飞发布的AI公文写作工具

    2026年3月14日
    2
  • Python学习系列之lambda表达式

    Python学习系列之lambda表达式一、lambda定义与用法lambda表达式是一行的函数。它们在其他语言中也被称为匿名函数。即,函数没有具体的名称,而用def创建的方法是有名称的。如果你不想在程序中对一个函数使用两次,你也许会想用lambda表达式,它们和普通的函数完全一样。而且当使用函数作为参数的时候,lambda表达式非常有用,可以让代码简单,简洁。lambda表达式返回的是function类型,说明是一个函数类型。…

    2022年10月18日
    4
  • 证书签名

    证书签名一、数字签名(digitalsignature)对指定信息使用哈希算法,得到一个固定长度的信息摘要,然后再使用私钥(注意必须是私钥)对该摘要加密,就得到了数字签名。所谓的代码签名就是这个意思。二、数字证书(digitalcertificate)证书生成开发者在申请iOS开发证书时,需要通过keychain生成一个CSR文件(CertificateSigningReque

    2022年4月28日
    81
  • lzma算法

    lzma算法lzma 算法分析这几天在公司主要在做压缩相关 记录一下所得 目前业界主流的压缩算法感觉并不多 好用的就 Huffman lz 系列 其他的像差分编码 vlq 编码 感觉只能做个数据预处理 或者一种小范围的压缩 lz 系列有很多 主要有 lz77lz78lzma 基本思想是一样的 都是一种字典编码 如 我有一段文本 里面有 abcdefabcde 那么后面的 abcde 并没有必要 可以用前面的替代 所以 其实可存储为 abcd65 6 代表 offset 5 代表 length 既用距离当前位置 6 字节 长度为 5 的字

    2026年3月19日
    3

发表回复

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

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