Oauth2---JWT非对称加密 的公钥和私钥、验证token是否合法

非对称加密算法需要两个密钥: 公开密钥 和 私有密钥。 公钥和私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。

甲方 生成一对密钥,将公钥公开,需要向甲方发送信息的其他角色(乙方)使用公钥对机密信息进行加密之后发送给甲方。甲方再利用自己的私钥对加密后的信息进行解密

私钥签名令牌  公钥验证 (项目中的JWT原理)

  • 张三有两把钥匙,一把是公钥,另一把是私钥。
  • 张三把公钥送给他的朋友们----李四、王五、赵六----每人一把。
  • 李四要给张三写一封保密的信。她写完后用张三的公钥加密,就可以达到保密的效果。

  • 李四要给张三写一封保密的信。她写完后用张三的公钥加密,就可以达到保密的效果
  • 张三收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要张三的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。

重点是:张三给李四回信

张三给李四回信,决定采用"数字签名"注:这个过程就是JWT的签名防篡改。他写完后先用Hash函数,生成信件的摘要(digest)。张三将这个签名,附在信件下面,一起发给李四

 

 

李四收信后,取下数字签名,用张三的公钥解密,得到信件的摘要。由此证明,这封信确实是张三发出的。李四再对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一

致,就证明这封信未被修改过。

 

 

 

传统的: 验证token是否合法

题外话: 当用户拿着从授权服务得到的token去访问资源服务器,资源服务器是将token返回给授权服务验证,验证token是否合法

 

这样就会导致,大量的从资源服务器到授权服务器的请求,如何优化呢?就是采用的非对称加密

 

jwt的组成:

  1. 头部
  2. 载荷
  3. 签证(核心点)

更新后:采用了非对称加密算法之后的访问 == > 减少了资源服务器和授权服务器之间的频繁的验证

使用私钥,注意这里授权服务是使用私钥生成jwt令牌的签名部分,防止jwt被篡改

资源服务器 可以使用公钥对令牌进行 合+

法性的校验

所以说:公钥和私钥的作用不只是:公钥进行加密,私钥进行解密。我们还可以利用私钥进行签名,生成令牌,然后公钥 校验令牌签证的合法性

 

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你在狗叫什么、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值