代码之家  ›  专栏  ›  技术社区  ›  Saqib Ali

如何从RSA密钥对创建JWK?

  •  0
  • Saqib Ali  · 技术社区  · 7 年前

    假设我有一个python结构,表示RSA密钥对,如下所示:

    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代码来生成JWK,用于验证使用此RSA私钥签名的JWT?使用的算法是RSA256。

    本网站 mkjwk 完成了我想做的事。但我正试图用python代码来实现它。

    1 回复  |  直到 7 年前
        1
  •  6
  •   lepture    7 年前

    下面是一个如何使用的示例 Authlib

    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