JWT简介

JWT 介绍

JSON Web令牌(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于在各方之间作为JSON对象安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。JWTS可以使用秘密(使用HMAC算法)或公钥/私钥对使用RSA或ECDSA来签名。

虽然JWTS可以加密,但也提供保密各方之间,我们将重点放在签名令牌。签名的令牌可以验证包含在其中的声明的完整性,而加密的令牌隐藏这些声明以防其他各方。当令牌使用公钥/私钥对签名时,签名也证明只有持有私钥的方才是签名的方。

使用 JWT 包含三部分的信息,分别为头部信息,载荷信息,签名信息

1.头部信息

头部信息 JSON 代码如下:

{
  "alg": "HS256",
  "typ": "JWT"
}
  1. typ :令牌的类型,即 JWT;
  2. alg:使用的算法,HS256加密算法

2.载荷信息

其中包含声明(claims),声明可以存放实体(通常是用户)和其他数据的声明,声明包括3种类型

  1. 已注册声明 :这些是一组预定义声明,不是强制性的,但建议使用,以提供一组有用的,可互操作的声明;
  2. 公开声明:对JWT的一些公开的声明,具体查看令牌注册表;
  3. 私有声明:根据根据自己的业务需要自定义的一些数据格式:

{
 
"uid": "123456",
 
"name": "tom"
 
}

3.签名信息

这个部分需要 base64 加密后的 头部信息(header) 和 base64 加密后的载荷信息(payload),使用连接组成的字符串,然后通过头部信息(header)中声明的加密方式进行加盐 secret 组合在加密,然后就构成了 JWT 的第三部分。

JWT 简单实用演示

打开网址 https://jwt.io/ 可以对JWT进行练习操作:
在这里插入图片描述
图中三个部分分别所对应的就是上文中所提到的头部信息,载荷信息,签名信息。使用HS256进行加密,左边是对信息加密编码所得出的JWT。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值