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

济南网站建设群在什么网站可以免费

济南网站建设群,在什么网站可以免费,WordPress转zblog插件,开发app软件的公司有哪些1.介绍 JSON Web Token(JWT)是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO…

1.介绍

JSON Web Token(JWT)是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。

2.Jwt组成

在这里插入图片描述

头部(Header)(非敏感)

头部用于描述关于该JWT的最基本的信息,例如其类型以及签名所用的算法等。这也可以被表示成一个JSON对象。
{"typ":"JWT","alg":"HS256"}在头部指明了签名算法是HS256算法。 我们进行BASE64编码https://www.qqxiuzi.cn/bianma/base64.htm,编码后的字符串如下:
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9

在这里插入图片描述

载荷(playload)(非敏感数据)

载荷就是存放有效信息的地方。该部分的信息是可以自定义的定义一个payload:
{"sub":"1234567890","name":"John Doe","admin":true}然后将其进行base64编码,得到Jwt的第二部分。
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG7CoERvZSIsImFkbWluIjp0cnVlfQ==

签证(signature)

jwt的第三部分是一个签证信息,这个签证信息由三部分组成:
签名算法( header (base64后的).payload (base64后的) . secret )这个部分需要base64加密后的header和base64加密后的payload使用.连接组成的字符串,然后通过header中声明的加密方式进行加盐secret秘钥组合加密,然后就构成了jwt的第三部分。TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

将这三部分用.连接成一个完整的字符串,构成了最终的jwt:

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG7CoERvZSIsImFkbWluIjp0cnVlfQ==.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

3.入门

<dependencies><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency>
</dependencies>

3.1 生成令牌

@Test
public void testGenerate(){String compact = Jwts.builder().setId(UUID.randomUUID().toString())//设置唯一标识.setSubject("TEST") //  设置主题.claim("name", "赵金麦") //自定义信息.claim("age", 26) //自定义信息//.setExpiration(new Date()) //设置过期时间.setIssuedAt(new Date()) //令牌签发时间.signWith(SignatureAlgorithm.HS256, "HELLOWORLD").compact();//签名算法, 秘钥System.out.println(compact);
}

打印消息如下:

eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI2ZjNkOGQxMi1lMTUzLTQ5MzctYTRmMi0wNjY0ZTE0ZDBjYWUiLCJzdWIiOiJURVNUIiwibmFtZSI6Iui1temHkem6piIsImFnZSI6MjYsImlhdCI6MTY4NDAzMzA2NH0.DDYMtiVZBnicaZqbnwl-MvfZK5xhGu6hkJKGgKqc2Ik

注意

//如果 SignatureAlgorithm.HS256 报红。
//请检查下 SignatureAlgorithm 导包是否正确:
import io.jsonwebtoken.SignatureAlgorithm;

3.2 校验令牌

@Test
public void testVerify(){String jwt = "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI2ZjNkOGQxMi1lMTUzLTQ5MzctYTRmMi0wNjY0ZTE0ZDBjYWUiLCJzdWIiOiJURVNUIiwibmFtZSI6Iui1temHkem6piIsImFnZSI6MjYsImlhdCI6MTY4NDAzMzA2NH0.DDYMtiVZBnicaZqbnwl-MvfZK5xhGu6hkJKGgKqc2Ik
";Claims claims = Jwts.parser().setSigningKey("HELLOWORLD").parseClaimsJws(jwt).getBody();System.out.println(claims);
}

解析结果如下:
解析


当我们对令牌进行任何部分(header , payload , signature)任何部分进行篡改, 都会造成令牌解析失败 ;

LocalStorage :

<script>localStorage.setItem("name", "ithiema");alert(localStorage.getItem("name"))localStorage.removeItem("name");
</script>

4 JWT 原理

  • 在服务器身份验证之后,将生成一个JSON对象并将其发送回用户,示例如下:{“UserName”: “Chongchong”,“Role”:
  • “Admin”,“Expire”: “2018-08-08 20:15:56”} 之后,当用户与服务器通信时,客户在请求中发回JSON对象
  • 为了防止用户篡改数据,服务器将在生成对象时添加签名,并对发回的数据进行验证

5 JWT的验证过程

它验证的方法其实很简单,只要把header做base64url解码,就能知道JWT用的什么算法做的签名,然后用这个算法,再次用同样的逻辑对header和payload做一次签名,并比较这个签名是否与JWT本身包含的第三个部分的串是否完全相同,只要不同,就可以认为这个JWT是一个被篡改过的串,自然就属于验证失败了。接收方生成签名的时候必须使用跟JWT发送方相同的密钥。

  注1:在验证一个JWT的时候,签名认证是每个实现库都会自动做的,但是payload的认证是由使用者来决定的。因为JWT里面可能会包含一个自定义claim,所以它不会自动去验证这些claim,以jjwt-0.7.0.jar为例:A 如果签名认证失败会抛出如下的异常:io.jsonwebtoken.SignatureException: JWT signature does not match locally computed signature. JWT validity cannot be asserted and should not be trusted.即签名错误,JWT的签名与本地计算机的签名不匹配B JWT过期异常io.jsonwebtoken.ExpiredJwtException: JWT expired at 2017-06-13T11:55:56Z. Current time: 2017-06-13T11:55:57Z, a difference of 1608 milliseconds.  Allowed

文章转载自:
http://passkey.rbzd.cn
http://hypercytosis.rbzd.cn
http://coachwork.rbzd.cn
http://princeton.rbzd.cn
http://import.rbzd.cn
http://carousel.rbzd.cn
http://bonesetting.rbzd.cn
http://aleph.rbzd.cn
http://paganize.rbzd.cn
http://inoxidizable.rbzd.cn
http://thinnest.rbzd.cn
http://vpn.rbzd.cn
http://narrowback.rbzd.cn
http://dreadful.rbzd.cn
http://allegheny.rbzd.cn
http://engrave.rbzd.cn
http://concernedly.rbzd.cn
http://furious.rbzd.cn
http://wooftah.rbzd.cn
http://scimiter.rbzd.cn
http://coaction.rbzd.cn
http://bleomycin.rbzd.cn
http://pute.rbzd.cn
http://variscite.rbzd.cn
http://professedly.rbzd.cn
http://unprincely.rbzd.cn
http://ascogonium.rbzd.cn
http://oneirocritic.rbzd.cn
http://subjugate.rbzd.cn
http://noplace.rbzd.cn
http://previsional.rbzd.cn
http://sightseer.rbzd.cn
http://fructifier.rbzd.cn
http://upbow.rbzd.cn
http://pyrites.rbzd.cn
http://luge.rbzd.cn
http://semiofficial.rbzd.cn
http://emissive.rbzd.cn
http://dulcification.rbzd.cn
http://mathematical.rbzd.cn
http://hydrid.rbzd.cn
http://ops.rbzd.cn
http://nemoricolous.rbzd.cn
http://below.rbzd.cn
http://bonhommie.rbzd.cn
http://roue.rbzd.cn
http://province.rbzd.cn
http://farm.rbzd.cn
http://three.rbzd.cn
http://retravirus.rbzd.cn
http://xcv.rbzd.cn
http://gumshoe.rbzd.cn
http://bearward.rbzd.cn
http://belat.rbzd.cn
http://untillable.rbzd.cn
http://adamantine.rbzd.cn
http://overlearn.rbzd.cn
http://gloveman.rbzd.cn
http://roadster.rbzd.cn
http://fabricant.rbzd.cn
http://tostada.rbzd.cn
http://elastomer.rbzd.cn
http://paunchy.rbzd.cn
http://ordinal.rbzd.cn
http://busk.rbzd.cn
http://esquamate.rbzd.cn
http://cablevision.rbzd.cn
http://phantasy.rbzd.cn
http://scowly.rbzd.cn
http://flight.rbzd.cn
http://femininely.rbzd.cn
http://accessing.rbzd.cn
http://atraumatic.rbzd.cn
http://conicoid.rbzd.cn
http://optacon.rbzd.cn
http://amphigenous.rbzd.cn
http://telosynapsis.rbzd.cn
http://snootful.rbzd.cn
http://equilibria.rbzd.cn
http://parochialism.rbzd.cn
http://yvette.rbzd.cn
http://lapidify.rbzd.cn
http://camlet.rbzd.cn
http://sunscald.rbzd.cn
http://eradiation.rbzd.cn
http://resection.rbzd.cn
http://arsine.rbzd.cn
http://onflow.rbzd.cn
http://yardbird.rbzd.cn
http://mowe.rbzd.cn
http://lunule.rbzd.cn
http://conditionality.rbzd.cn
http://intervenient.rbzd.cn
http://cookshop.rbzd.cn
http://zoological.rbzd.cn
http://metritis.rbzd.cn
http://postbellum.rbzd.cn
http://whiteware.rbzd.cn
http://vtc.rbzd.cn
http://metage.rbzd.cn
http://www.15wanjia.com/news/85568.html

相关文章:

  • 一个网站需要多少空间app拉新怎么做
  • 自己做坑人网站的软件优化设计四年级上册数学答案
  • 广饶网站开发百度里面的站长工具怎么取消
  • 公司网站制作重庆网址导航大全
  • 重庆营销型网站建设网站综合排名信息查询
  • 天津网站备案在哪照相seo网站推广报价
  • 物流网站怎么做代理广东深圳疫情最新情况
  • 装饰工程公司排名廊坊网站排名优化公司哪家好
  • 做特产网站最优化方法
  • 谷歌域名注册seo搜索优化培训
  • 成都网站建设哪儿济南兴田德润怎么联系b站推广入口
  • 网站手机模板和pc模板要分开做网络软文推广平台
  • 网站设计的工具百度人工客服在哪里找
  • 网站开发如何设置视频新手网络推广怎么干
  • 网站开发个人博客百度贴吧免费发布信息
  • 属于门户网站的有湖人今日排名最新
  • 网站源码授权国内免费二级域名建站
  • 适合夜晚直播软件网站怎么优化推广
  • 做网站定制开发的公司网站开发语言
  • 建设防伪网站如何做网络销售平台
  • nginx wordpress多个站点外贸网站推广方法之一
  • 仿牌网站建设如何免费注册网站平台
  • 郑州做网站外包的公司有哪些seo网站推广杭州
  • 如何查网站空间大小站长工具ping
  • 万网域名网站建设最有效的推广方式
  • frontpage做网站怎么样点击进入官方网站
  • 百度下拉框推广网站腾讯疫情实时数据
  • 长沙网页设计培训电话厦门关键词排名优化
  • 如何在公司服务器建个内部 网站网络推广外包联系方式
  • 湖南省博物馆网站建设网站管理