Encryption 使用非对称加密的JWT
我想问一个问题,在使用非对称加密时,我们使用客户机的公钥加密数据,这样客户机就可以使用他们的私钥解密数据,对吗 我刚刚找到了使用RSA对JWT进行签名的教程,但我发现它们使用服务器私钥而不是客户机的公钥加密数据,并且服务器的公钥在客户机之间共享 安全吗?因为如果公钥因为可共享而落入坏人之手,那么每个人都可以正确解密 那么,这样签署jwt可以吗 参考资料: 所以客户端可以使用他们的私钥解密数据,对吗 是的,在加密数据的情况下,这是正常的方式 但是在JWTs的情况下,它不是关于加密只有接收者应该解密的东西,而是关于对令牌进行签名 目标是,只有一个实例(例如身份验证服务器或令牌颁发者)可以对令牌进行签名,但每个人都可以使用公钥验证签名 因为如果公钥因为可共享而落入坏人之手,那么每个人都可以正确解密 公钥不能落入坏人之手,因为它是公开的。因此,根据定义,每个人都可以看到它 令牌的内容(即有效负载)未加密,而只是base64url编码,并且可以由everone读取,例如在上 那么,这样签署jwt可以吗Encryption 使用非对称加密的JWT,encryption,jwt,rsa,encryption-asymmetric,Encryption,Jwt,Rsa,Encryption Asymmetric,我想问一个问题,在使用非对称加密时,我们使用客户机的公钥加密数据,这样客户机就可以使用他们的私钥解密数据,对吗 我刚刚找到了使用RSA对JWT进行签名的教程,但我发现它们使用服务器私钥而不是客户机的公钥加密数据,并且服务器的公钥在客户机之间共享 安全吗?因为如果公钥因为可共享而落入坏人之手,那么每个人都可以正确解密 那么,这样签署jwt可以吗 参考资料: 所以客户端可以使用他们的私钥解密数据,对吗 是的,在加密数据的情况下,这是正常的方式 但是在JWTs的情况下,它不是关于加密只有接收者应该解
是在这种情况下,目的不是加密数据,使其他人无法读取(“保密”),而是对数据进行签名,以便使用公钥的其他人可以验证您是否拥有私钥,以及您是否实际签署了数据。本例中的数据是JWT头和有效负载的散列。私钥用于签名,因此只有一个实体(身份验证服务器)可以对JWTs进行签名。公钥用于签名验证,因此使用公钥的任何第三方都可以验证JWT。公钥不能用于创建有效的签名
所以是的,它是安全的 谢谢,你的回答很有帮助!谢谢,你的回答很有帮助!不要将RSA解密与RSA签名混淆,事实并非如此。RSA签名需要特殊的填充,如RSA-PSS。类似地,RSA加密也需要像PKCS#1 v1.5或RSA-OAEP这样的填充。如果没有适当的填充,则决不能使用RSA。