JWT的数字签名的简单理解

一、JWT概念

        json web token

二、JWT与原始token的区别

      JWT是对原始security的oauth2 token的增强。

      原始的token只是一个uuid,没有任何意义。

      JWT包含了部分业务信息,减少了token验证等交互操作,效率更高。

三、JWT的特点

  • 自包含:包含有意义的信息。但由于其信息能被公开看到,所以jwt并不能放特别敏感的业务信息。
  • 含有签名:防止jwt自身被修改
  • 可扩展:可自定信息

三、JWT的签名

      JWT是如何做到防止内容被篡改? 答案就是数字签名。

      JWT内容是由三部分组成:Header、PayLoad、Signature。

              Header里存的是:token类型和加密算法,此处的加密算法是签名的加密算法

              PayLoad里面存的是:具体的业务数据比如用户id等等

              Signature:具体的数字签名密文信息

     举个例子,jwt内容如下:

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImp0aSI6IjMyMWU1MzlmLTJmY2MtNDcwNy05YWMyLTI1ZmY5MTkzZTI4ZiIsImlhdCI6MTU3MTc5ODgwNiwiZXhwIjoxNTcxODAyNDA2fQ.3pNLP8HvSu5hKFATOeJIR1Tpo5hxDB4Pcz6mK1lsTFU

    其内容由三个“.”隔开,由base64编码,分别对应的就是header、payload、signature。

    通常我们使用jwt时候采用RS256 公钥/私钥 方式进行签名的 加密/解密,因为RS256是非对称加密,比较安全。

    因为jwt是由服务端生成并发放的,其中签名是由服务端的私钥加密而成的,只要保证了私钥的安全,就能保证签名是安全的。

    当别人拿着jwt访问我们的服务时,可以有以下验证方式:

     我们服务端拿到header和payload的信息,通过header里的加密算法拿着我们自己的私钥对payload生成一个签名对比jwt传过来的签名,如果签名一致,说明payload的信息没有被修改。

-------------------------------------------------------------------------------------------------------------------------------

以上为我的理解,以后接着补充,如有错误,欢迎指正。

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值