如何从 RSA 密钥对创建 JWK?
Posted
技术标签:
【中文标题】如何从 RSA 密钥对创建 JWK?【英文标题】:How to create JWK from RSA Key pair? 【发布时间】:2019-05-24 14:40:00 【问题描述】:假设我有一个表示 RSA 密钥对的 python 结构如下:
rsa_key_pair =
'private_key': '-----BEGIN PRIVATE KEY-----\nMIIEvAIBADAN__OBSCURED__qxu3sWAlY/bstTB5WfX8PA==\n-----END PRIVATE KEY-----\n',
'public_key': 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDCDDqGTiBYyoB9T5Haow5gcPBIIiltLVyM4vo8Txia1czgrk2XGH5t4dsWrcXIXjQafNb7PKelXZdRU36vIIAaZCZ0As5LtkC5D93+KO9PFLGkHxWi2G43naR9hOnrKliMjOd+JRUdApdY8c/wYJbDxGGuw7W9e3MsLABFEK+TnPTVJtO8Ix78FiuHRooWfU5ph7clfTeyundN2BNv8mO6ZSBiBAk6tN8Fwpljs96Z/3HnMQutX1/AFkMn5h+E0EV4CgLPvtRazfzoWNlIiXGmiVUVHrM1wna9jT/jyb7aoxkthkAXb6NNyCW/Znxq45Ozy27kZcw/X4WQ0QMmpgfX'
如何编写 python 代码来生成可用于验证使用此 RSA 私钥签名的 JWT 的 JWK?使用的算法是 RSA256。
这个网站mkjwk 完成了我想做的事情。但我正在尝试在 python 代码中做到这一点。
【问题讨论】:
我已经看过那个文档了。它在哪里显示如何从 RSA 密钥生成 JWK?我没看到。我只看到如何使用 JWK 来决定,而不是如何生成它。 对不起,我读了你的问题。这是一个相关的事情:python-jose.readthedocs.io/en/latest/jwk/api.html 【参考方案1】:这是一个如何使用Authlib 转储 JWK 的示例:
from authlib.jose import jwk
jwk.dumps(rsa_key_pair['public_key'], kty='RSA')
jwk.dumps(rsa_key_pair['private_key'], kty='RSA')
这是你的公钥的结果:
"kty": "RSA",
"n": "wgw6hk4gWMqAfU-R2qMOYHDwSCIpbS1cjOL6PE8YmtXM4K5Nlxh-beHbFq3FyF40GnzW-zynpV2XUVN-ryCAGmQmdALOS7ZAuQ_d_ijvTxSxpB8VothuN52kfYTp6ypYjIznfiUVHQKXWphp8GCWw8RhrsO1vXtzLCwARRCvk5z01SbTvCMe_BYrh0aKFn1OaYe3JX03srp3TdgTb_JjumUgYgQJOrTfBcKZY7Pemf9x5zELrV9fwBZDJ-YfhNBFeAoCz77UWs386FjZSIlxpolVFR6zNcJ2vY0_48m-2qMZLYZAF2-jTcglv2Z8auOTs8tu5GXMP1-FkNEDJqYH1w",
"e": "AQAB"
通过http://docs.authlib.org/en/latest/jose/jwk.html
【讨论】:
对于弃用警告:gist.github.com/lepture/7e38d505c1e22e6e913d8625e5c52cca#jose以上是关于如何从 RSA 密钥对创建 JWK?的主要内容,如果未能解决你的问题,请参考以下文章