"n": "rKZ-1zdz_CoLekSynOtyWv6cPSSkV28Kb9kZZHyYL-yhkKnH_bHl8OpWiGxQiKP0ulLRIaq1IhSMetkZ8FfXH-iptIDu4lPb8gt0HQYkjcy3HoaKRXBw2F8fJQO4jQ-ufR4l-E0HRqwLywzdtAImNWmju3A4kx8s0iSGHGSHyE4EUdh5WKt-NMtfUPfB5v9_2bC-w6wH7zAEsI5nscMXnvz1u8w7g2_agyhKSK0D9OkJ02w3I4xLMlrtKEv2naoBGerWckKcQ1kBYUh6WASPdvTqX4pcAJi7Tg6jwQXIP1aEq0JU8C0zE3d33kaMoCN3SenIxpRczRzUHpbZ-gk5PQ",
"e": "AQAB",
如何从这些值中生成公钥?最好通过python或Linux程序。如果因为无效值而使问题变得毫无意义,我很抱歉。
源代码为here。
1条答案
按热度按时间e5nqia271#
在Python中,可以使用Python-JOSE
在链接中得到的是一个JSON Web Key Set (JWKS),一个JSON Web Keys (JWK)的JSON格式数组。
n
和e
是RSA公开密钥的模数和指数。函数
jwk.construct
可以直接从JWK创建一个密钥。然后可以使用该密钥来验证JWT(key.verify
)。您也可以使用
jwt.decode
,如下面的代码所示,并直接传递JWK,或者以PEM格式传递。结果将是:
True {'sub':“1234567890”,“姓名”:“John Doe”、“管理员”:真的,“iat”:1516239022)的规定
这意味着可以用该密钥来验证令牌。