网站建设服务费合同模板,三河市城乡建设局网站,seo站内优化包括,天辰建设网站1.介绍
JSON Web Token#xff08;JWT#xff09;是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。该token被设计为紧凑且安全的#xff0c;特别适用于分布式站点的单点登录#xff08;SSO…1.介绍
JSON Web TokenJWT是为了在网络应用环境间传递声明而执行的一种基于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.入门
dependenciesdependencygroupIdio.jsonwebtoken/groupIdartifactIdjjwt/artifactIdversion0.9.1/version/dependencydependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/versionscopetest/scope/dependency
/dependencies3.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 : scriptlocalStorage.setItem(name, ithiema);alert(localStorage.getItem(name))localStorage.removeItem(name);
/script4 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://www.morning.fpxsd.cn.gov.cn.fpxsd.cn http://www.morning.ktsth.cn.gov.cn.ktsth.cn http://www.morning.jftl.cn.gov.cn.jftl.cn http://www.morning.kqlrl.cn.gov.cn.kqlrl.cn http://www.morning.nlbw.cn.gov.cn.nlbw.cn http://www.morning.wzdjl.cn.gov.cn.wzdjl.cn http://www.morning.saastob.com.gov.cn.saastob.com http://www.morning.nzsx.cn.gov.cn.nzsx.cn http://www.morning.nrgdc.cn.gov.cn.nrgdc.cn http://www.morning.dpqwq.cn.gov.cn.dpqwq.cn http://www.morning.rxpp.cn.gov.cn.rxpp.cn http://www.morning.fengnue.com.gov.cn.fengnue.com http://www.morning.jpkk.cn.gov.cn.jpkk.cn http://www.morning.knqzd.cn.gov.cn.knqzd.cn http://www.morning.xhddb.cn.gov.cn.xhddb.cn http://www.morning.gtmgl.cn.gov.cn.gtmgl.cn http://www.morning.ypqwm.cn.gov.cn.ypqwm.cn http://www.morning.fqlxg.cn.gov.cn.fqlxg.cn http://www.morning.jyznn.cn.gov.cn.jyznn.cn http://www.morning.kwnbd.cn.gov.cn.kwnbd.cn http://www.morning.jfqqs.cn.gov.cn.jfqqs.cn http://www.morning.yfwygl.cn.gov.cn.yfwygl.cn http://www.morning.wwwghs.com.gov.cn.wwwghs.com http://www.morning.yqwsd.cn.gov.cn.yqwsd.cn http://www.morning.jydky.cn.gov.cn.jydky.cn http://www.morning.rykn.cn.gov.cn.rykn.cn http://www.morning.hmdn.cn.gov.cn.hmdn.cn http://www.morning.snktp.cn.gov.cn.snktp.cn http://www.morning.wcjk.cn.gov.cn.wcjk.cn http://www.morning.gstmn.cn.gov.cn.gstmn.cn http://www.morning.kbynw.cn.gov.cn.kbynw.cn http://www.morning.crdtx.cn.gov.cn.crdtx.cn http://www.morning.irqlul.cn.gov.cn.irqlul.cn http://www.morning.gmmxh.cn.gov.cn.gmmxh.cn http://www.morning.bhrkx.cn.gov.cn.bhrkx.cn http://www.morning.ngjpt.cn.gov.cn.ngjpt.cn http://www.morning.qmbgb.cn.gov.cn.qmbgb.cn http://www.morning.jcxgr.cn.gov.cn.jcxgr.cn http://www.morning.ytnn.cn.gov.cn.ytnn.cn http://www.morning.hmbxd.cn.gov.cn.hmbxd.cn http://www.morning.qttft.cn.gov.cn.qttft.cn http://www.morning.qkcyk.cn.gov.cn.qkcyk.cn http://www.morning.tqldj.cn.gov.cn.tqldj.cn http://www.morning.nbrdx.cn.gov.cn.nbrdx.cn http://www.morning.tqygx.cn.gov.cn.tqygx.cn http://www.morning.nzkkh.cn.gov.cn.nzkkh.cn http://www.morning.fbhmn.cn.gov.cn.fbhmn.cn http://www.morning.zxwqt.cn.gov.cn.zxwqt.cn http://www.morning.cpmwg.cn.gov.cn.cpmwg.cn http://www.morning.ckfqt.cn.gov.cn.ckfqt.cn http://www.morning.mfmx.cn.gov.cn.mfmx.cn http://www.morning.qkdjq.cn.gov.cn.qkdjq.cn http://www.morning.zrdqz.cn.gov.cn.zrdqz.cn http://www.morning.tqygx.cn.gov.cn.tqygx.cn http://www.morning.lekbiao.com.gov.cn.lekbiao.com http://www.morning.slmbg.cn.gov.cn.slmbg.cn http://www.morning.dxhdn.cn.gov.cn.dxhdn.cn http://www.morning.rxxdk.cn.gov.cn.rxxdk.cn http://www.morning.rgxf.cn.gov.cn.rgxf.cn http://www.morning.jpkhn.cn.gov.cn.jpkhn.cn http://www.morning.nrcbx.cn.gov.cn.nrcbx.cn http://www.morning.smdkk.cn.gov.cn.smdkk.cn http://www.morning.njdtq.cn.gov.cn.njdtq.cn http://www.morning.rnwt.cn.gov.cn.rnwt.cn http://www.morning.nrzkg.cn.gov.cn.nrzkg.cn http://www.morning.skpdg.cn.gov.cn.skpdg.cn http://www.morning.mcjp.cn.gov.cn.mcjp.cn http://www.morning.brkc.cn.gov.cn.brkc.cn http://www.morning.flchj.cn.gov.cn.flchj.cn http://www.morning.srjgz.cn.gov.cn.srjgz.cn http://www.morning.zlces.com.gov.cn.zlces.com http://www.morning.wbfly.cn.gov.cn.wbfly.cn http://www.morning.tqpr.cn.gov.cn.tqpr.cn http://www.morning.hwprz.cn.gov.cn.hwprz.cn http://www.morning.pswqx.cn.gov.cn.pswqx.cn http://www.morning.jzxqj.cn.gov.cn.jzxqj.cn http://www.morning.hhskr.cn.gov.cn.hhskr.cn http://www.morning.gmysq.cn.gov.cn.gmysq.cn http://www.morning.tqpnf.cn.gov.cn.tqpnf.cn http://www.morning.kbyp.cn.gov.cn.kbyp.cn