2021-09-30 JWT与JJWT - yahya

jwt 是什么

jwt(Json web token)是json对象的编码表示,json对象由零个或多个名称/值对组成,其中名称是string,值为任意json值。

JWT有助于(例如在URL中)发送这样的信息,可以被信任为不可读(即加密的)、不可修改的(即签名)和URL - safe(即Base64编码的)。

jwt 的组成

Header: 标题包含了令牌的元数据,包含签名、加密算法的类型

Claims: Claims包含您想要签署的任何信息

JSON Web Signature (JWS): 在header中指定的使用该算法的数字签名和声明

另一种说法:

Header 头部信息,主要声明了JWT的签名算法等信息
Payload 载荷信息,主要承载了各种声明并传递明文数据
Signature 签名,拥有该部分的JWT被称为JWS,也就是签了名的JWS,用于校验数据
Header:

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

Claims:

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

Signature:

base64UrlEncode(Header) + "." + base64UrlEncode(Claims),

加密生成的token:分三段,分别对应这三部分。header.payload.signature

如何保证jwt安全

JJWT是一个提供端到端的JWT创建和验证的Java库。永远免费和开源(Apache License,版本2.0),JJWT很容易使用和理解。它被设计成一个以建筑为中心的流畅界面,隐藏了它的大部分复杂性。

  1. JJWT的目标是最容易使用和理解用于在JVM上创建和验证JSON Web令牌(JWTs)的库。

  2. JJWT是基于JWT、JWS、JWE、JWK和JWA RFC规范的Java实现。

  3. JJWT还添加了一些不属于规范的便利扩展,比如JWT压缩和索赔强制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值