Corgy. 2021-11-29 23:23 采纳率: 25%
浏览 44

为啥rsa加密了jwt在网上的jwt解密还能破解

img

img

请问大家们是我理解错误吗 真的很不理解 我明明rsa加密了 还没解密为啥能读到信息

  • 写回答

3条回答 默认 最新

  • lwdbcy 2022-03-07 09:21
    关注

    1. jwt的组成三部分

    Header.PayLoad.Signature
    Header(头部):存放token类型和加密算法,此处的加密算法是签名的加密算法,头部使用Base64编码;
    PayLoad(载荷):存放具体的信息和业务数据(如用户的id)等等,载荷使用Base64编码;
    Signature(签名):对Base64编码之后Header、PayLoad,使用头部定义的算法进行加密(你这里是rsa);

    2. 为啥明明加密了可以“无伤解密”回答:

    因为头部和载荷使用的是Base64算法,但是Base64算法只是一种将二进制换成文本的一种编码方法,不是一种加密算法,所以看起来是可以直接解析的,最好不要将敏感信息放到载荷之中。

    3. 加密的作用

    加密的作用我的理解是,它是为了防止别人伪造jwt,当一个客户端携带token到服务端,只要保证这个token不是别人伪造的不就达到目的了。
    当你使用rsa加密,你会怎么验证这个token的有效性,我没找到具体的讲解,不过应该是下面两种方式吧。

    1. 再将头部和载荷使用私钥加密一次得到签名,与传送过来的token中的签名对比,是否一致。
    2. 使用公钥解密签名,观察解析出来的头部和载荷与token中的信息是否一致

    4. 最后

    如果有用可以给个采纳吗?

    评论

报告相同问题?

问题事件

  • 创建了问题 11月29日

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!