JWT组成三部分

头部
一个json字符串,包含当前令牌名称,以及加密算法,

{"typ":"JWT","alg":"HS256"}

使用base64加密

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9

载荷
一个json字符创,包含一些自定义的信息,

{"sub":"1234567890","name":"John Doe","admin":true}

使用base64加密

eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9

签名

由头部信息使用base64加密之后,拼接上载荷使用base64加密之后的部分,在加上当前的密钥,进行头部中的加密算法进行加密

header (base64后的)

payload (base64后的)

secret

这个部分需要base64加密后的header和base64加密后的payload使用.连接组成的字符串,然后通过header中声明的加密方式进行加盐secret组合加密,然后就构成了jwt的第三部分。

TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

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

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.T

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JWT(JSON Web Token)是一种开放标准(RFC 7519),用于在各方之间安全地传输信息作为JSON对象。它由部分组成:头部(Header)、载荷(Payload)和签名(Signature)。 1. 头部(Header):JWT的头部通常由两部分组成:令牌类型(通常为JWT)和签名算法(例如HMAC SHA256或RSA)等信息,以Base64编码进行表示。 2. 载荷(Payload):载荷是JWT的第二个部分,它包含要传输的数据。载荷可以包含称为声明(claims)的信息,声明分为种类型:注册声明(registered claims)、公共声明(public claims)和私有声明(private claims)。注册声明是预定义的标准声明,例如iss(签发者)和exp(过期时间)。公共声明是自定义的声明,但建议遵循一定的命名规范。私有声明是用户自定义的声明,用于在各方之间共享信息。 3. 签名(Signature):签名是JWT第三部分,它将头部和载荷进行编码后,并使用头部中指定的算法和密钥进行签名生成。签名用于验证消息的完整性和认证发送方。 这部分通常通过点号(.)进行分隔,并按顺序组成JWT。完整的JWT可以像下面这样表示: ``` xxxxx.yyyyy.zzzzz ``` JWT被广泛用于身份验证和授权场景,可以通过验证签名来确认消息的真实性和完整性,并且由于载荷是可自定义的,因此可以在其中包含必要的用户信息和其他元数据。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值