请问大家们是我理解错误吗 真的很不理解 我明明rsa加密了 还没解密为啥能读到信息
Header.PayLoad.Signature
Header(头部):存放token类型和加密算法,此处的加密算法是签名的加密算法,头部使用Base64编码;
PayLoad(载荷):存放具体的信息和业务数据(如用户的id)等等,载荷使用Base64编码;
Signature(签名):对Base64编码之后Header、PayLoad,使用头部定义的算法进行加密(你这里是rsa);
因为头部和载荷使用的是Base64算法,但是Base64算法只是一种将二进制换成文本的一种编码方法,不是一种加密算法,所以看起来是可以直接解析的,最好不要将敏感信息放到载荷之中。
加密的作用我的理解是,它是为了防止别人伪造jwt,当一个客户端携带token到服务端,只要保证这个token不是别人伪造的不就达到目的了。
当你使用rsa加密,你会怎么验证这个token的有效性,我没找到具体的讲解,不过应该是下面两种方式吧。
如果有用可以给个采纳吗?
后台很多的认证,例如:JWT 也不过是一种验证的工具,而不是真正的加密后看不到,只是为了验证登录的人是不是还是你。
所以不建议放入私人重要信息在Payload中,可以放入一个用户id或者name,这些无关紧要的信息。