这实际上分解为许多单独的问题以了解整个过程。
据我了解,JWT 只是三个 JSON 对象,它们彼此分开编码为 base64。然后 Base64 字符串用句点分隔。这纯粹是为了“短消息”的目的吗?
这些包括标题、“有效负载”和签名。任何拦截它们的人都可以 100% 地读取标头和有效负载。它们只是可以解码为 JSON 并读取的 base64 字符串。
然后 MAGIC:服务器收到无法解码的 SIGNATURE。签名实际上是标头、有效负载和密钥的散列。因此,服务器获取标头、有效负载和 ITS OWN 密钥,并进行哈希处理。如果此哈希与消息附带的签名匹配,则该消息是可信的。如果签名不匹配,则消息无效。
我对这一切有什么问题吗?这里的两个单独的键在哪里?似乎用于加密消息的密钥和用于解密消息的密钥是相同的。这是我问题的根源——如果你什么都不回答,请帮忙。
除此之外,我想知道我是否正确理解了这个过程?此外,“同意公钥”的标准在哪里,然后在这里发生公钥/私钥的“混合”交易?我所看到的只是用于编码/解码的相同密钥。但是协议是什么时候发生的呢?在 .NET 和 Auth0 btw 的上下文中查看此内容,但总体而言是 q。
如果有人有兴趣稍后看到这个 q,我观看/阅读/使用的随机内容:
JWT 总结: https ://scotch.io/tutorials/the-anatomy-of-a-json-web-token
公钥/不对称密码学:https ://youtu.be/3QnD2c4Xovk