首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JWT密钥-非对称和对称

JWT密钥-非对称和对称
EN

Stack Overflow用户
提问于 2015-10-02 13:22:29
回答 3查看 17.5K关注 0票数 25

我理解对称密钥和非对称密钥之间的区别。我知道密钥是用来计算签名,然后验证它们的。但是深入一点,我想了解更多一些我在网上很难找到的东西。

是否将密钥提供给消费者以验证内容?如果使用对称密钥,消费者不是可以更改JWT内容吗?

当使用非对称密钥时,签名是用私钥还是公钥计算的?消费者是否获得了公钥/私钥?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-02 14:44:49

对称密钥只能以点对点的方式使用,因此对于接收方来说,修改只有他和发送方拥有共享密钥的JWTs是没有意义的(并且他是预期的接收方)。

非对称密钥签名(在JWT中以及一般情况下)由发送方使用私钥生成,并由接收方使用公钥进行验证。消费者/接收者只被给予公钥,这发生在out_of_band (即,通过另一种通信方式,而不是您用来交换安全数据的方式)。

票数 29
EN

Stack Overflow用户

发布于 2018-06-05 04:41:55

对于用发送方的私钥签名的非对称JWS(JWS),令牌的接收方基本上是在接收明文形式的有效载荷(报头/声明),其他的是base64编码的。这就是为什么它们需要在安全套接字层(SSL)环境中传输的原因。为了验证接收到的签名,接收器使用公钥来重新计算接收到的有效载荷的签名。如果两个签名(接收到的签名和计算出的签名)不匹配,那么有效负载就不能被信任--因此,这种不对称的JWS将不会()是一个包含敏感的“声明”(比如社会安全号码)的好方法,因为有效负载的内容没有加密。在JWT中包含这样的敏感数据,可以使用Json Web令牌加密的JWE。在JWE中,整个有效负载都是加密的。

票数 4
EN

Stack Overflow用户

发布于 2019-08-27 03:29:38

没有人会加密JWT的有效负载。这都是关于签名的!RSA或ECDSA (两者都是非对称的)签名可以只用一个公钥来验证,对于对称签名,你需要一个auth-service。

最常见的JWT签名算法:

代码语言:javascript
复制
HMAC + SHA256
RSASSA-PKCS1-v1_5 + SHA256
ECDSA + P-256 + SHA256

查看更多https://www.rfc-editor.org/rfc/rfc7518#section-3

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32900998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档