从头搭架构SpringCloud(六):权限认证spring security + oauth2 +jwt之jwt及jwt加密

JWT,全称是Json Web Token,是JSON风格轻量级的授权和身份认证规范,可实现无状态、分布式的Web应用授权;

JWT的token包含三部分数据:

  1. Header:头部,JWT 头描述了 JWT 元数据,是一个 JSON 对象通常头部有两部分信息,它的格式如下:
    • 声明类型,这里是JWT
    • 加密算法,自定义
 json{
   “alg”:“HS256”,“typ”:“JWT”}
  alg 属性表示签名所使用的算法,JWT 签名默认的算法为 HMAC SHA256 , alg 属性值 HS256 就是 HMAC SHA256 算法。
  typ 属性表示令牌类型,这里就是 JWT。
  1. Payload:有效载荷是 JWT 的主体,同样也是个 JSON 对象。有效载荷包含三个部分:
1.标准注册声明
标准注册声明不是强制使用是的,但是我建议使用。它一般包括以下内容:
iss:jwt的签发者/发行人;
sub:主题;
aud:接收方;
exp:jwt过期时间;
nbf:jwt生效时间;
iat:签发时间
jti:jwt唯一身份标识,可以避免重放攻击
2.公共声明:
可以在公共声明添加任何信息,我们一般会在里面添加用户信息和业务信息,但是不建议添加敏感信息,因为公共声明部分可以在客户端解密。
3.私有声明:
私有声明是服务器和客户端共同定义的声明,同样这里不建议添加敏感信息。
  1. Signature:签名,是整个数据的认证信息。一般根据前两步的数据, 再加上服务的的密钥(secret)
    (不要泄漏,最好周期性更换),通过加密算法生成。用于验证整个数据完整和可靠性(不要泄漏,最好周期性更换),
    通过加密算法生成。用于验证整个数据完整和可靠性

JWT 注意事项

JWT 默认不加密,如果要写入敏感信息必须加密,可以用生成的原始令牌再次对内容进行加密;
JWT 无法使服务器保存会话状态,当令牌生成后在有效期内无法取消也不能更改;
JWT 包含认证信息,如果泄露了,任何人都可以获得令牌所有的权限;因此 JWT 有效期不能太长,对于重要操作每次请求都必须进行身份验证。

加密方式

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值