请教一个问题
在 jwt 的签名部分(VERIFY SIGNATURE),使用 RSA 公私钥方式对payload
和header
进行签名的时候,签名的逻辑是
RSASHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
privateKey,
publicKey
)
对于上面的逻辑来说,为什么要传入全部的 header
和 payload
进行加密呢?
对于一个 jwt 来说 payload 部分本来就相当于是明文可见的。只签名这两部分的 hash 应该也可以实现数据完整性的校验。像下面这种
RSASHA256(
Hash(header,payload),
privateKey,
publicKey
)
我的问题是 --> 为什么不对 header 和 payload 的 hash 做签名而选择全量的数据呢?是出于那种考量呢
payload
和header
部分被篡改也能恢复干净数据的考量吗?
求大神赐教,感谢🙏这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.