Java JWT:Java的JSON Web令牌 学习与研究

Java的JSON Web令牌

一、什么是JWT

JWT是一种以紧凑,可验证的形式在两方之间传输信息的方法
在JWT主体中编码的信息位称为 claims。JWT的拓展形式为 JSON格式,因此每个 claim 都是JSON 对象中的键
JWT 可以被加密签名(使其成为JWS)或被加密(使其成为JWE)
这为JWT的用户增加了一层强大的可验证性。接收者具有高度的信心,例如可以通过验证签名来篡改JWT。

二、JWT的组成形式

签名的 JWT的紧凑形式是一个字符串,该字符串包含三个部分,每个部分中间都有一个 .

eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJKb2UifQ.ipevRNuRP6HflG8cFKnmUPtypruRC4fb1DWtoLL62SY

每个部分都是Base64URL 编码 的。整体分为三个部分:

  1. 标头 :至少指定用于签署 JWT的算法
  2. 正文:这个部分包含了此JWT的所有声明
  3. 签名 :通过标头和正文的组合,通过标头中指定的算法传递来计算的

如果将前两部分通过基本的64位url解码器传递,则会得到以下内容(为清楚起见添加了格式):

header:

	{
	 	"alg":"HS256"
	}

body:

	{
	 	"sub":"Joe"
	}

在这种情况下,我们得到的信息是使用 SHA-256算法的HMAC被用来对 JWT进行签名。而且,主体具有 sub价值的单一主张 Joe
要计算签名,需要一个密钥对其进行签名。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值