【问题标题】:Generating PEM private key file knowing n and d知道 n 和 d 生成 PEM 私钥文件
【发布时间】:2015-01-16 05:34:00
【问题描述】:

出于学术原因,我成功地分解了一个小尺寸的 RSA 公钥并提取了 n、p、q、e,然后计算了 d。我的问题是,有没有办法使用 python 为私钥(d,n)生成一个 .pem 私钥文件,以便轻松验证加密/解密是否顺利?

【问题讨论】:

    标签: python rsa asn.1 pem


    【解决方案1】:

    pyasn1 和 pyasn1-modules 包一起为您提供用于存储私钥信息的数据结构 (PKCS#8)。上述包还可以序列化/反序列化私钥数据结构(连同 base64 编码)构成 PEM 文件。

    查看 pyasn1-modules/tools/pkcs8dump.py 工具和pyasn1 documentation 了解更多信息。

    【讨论】:

      【解决方案2】:

      迟到的答案,但this script 应该可以帮助您实现目标。以下是作者对此的评价:

      简介

      这是一个获取 JWKS 结果的 Python 脚本,对于每个 jwk, 使用 modulusexponent 生成 PEM 编码的公共 key,适合在jwt.io等工具中使用

      这里是一个使用这个工具来获取 PEM 编码的公共的例子 “example.okta.com” Okta org 的键:

      ./jwks_to_pem.py --org example.okta.com
      
      Fetching JWKS from example.okta.com
      PEM for KID 're7eOFV6SiygSbCyYHGGdERFCJ_EoNpi9Duv0FIxllo'
      -----BEGIN PUBLIC KEY-----
      MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAgVdVgO4RogxtWt4XN2vO
      9SG3Ekt6Qh+k6Io28dTNjEWuNxCYCtQI2dFtFs2y7OyLxQ2e3491XTDVRxtUx/Kl
      RhQCcGDtLM5vTRWtGo39heg9dLWv7mqlk+jVkJrK2vAO+0bfl0x2Ouov4VS4Ixwx
      lJfaec8v0cw+xjcJc29Y28WNFYhW/wpf1uEHYAf/pQ9q7S25rhK5yPv23101P7pA
      bCNDyFB6PYLuXxqkE7dq7rIZXfw5xgNQBRugBrSmUEjoCFs3XowAXCk2gWhM/1Lg
      mSqaaAh/Cu5vvzM0wYoaEi598LWYmtgurQ3C2Nenu8HVjI+zCSg8v7VrcTa1MHua
      owIDAQAB
      -----END PUBLIC KEY-----
      
      PEM for KID 'kTP2cLZY0qA2qfnedNEgx6rs6yqIEdf4DQYYV2m4KPQ'
      -----BEGIN PUBLIC KEY-----
      MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjKb91FLaoZe9/5NEMZrO
      1eDn4hdrhtjrvsy+qO1QIbbdhRXJIJoE+qpHmgmq1gK28OZCV51xUAwk8ugw5p7/
      m2wIarykHtXuBmhcFPkWez6N/yX30qvdOPPKUGqd05AoGcrzAW6fV07CRROU+5g1
      RnTdNasLEMYaq0xPlmCMDjb3usyiafGyyrwg4+tndOTry4uMtF7LeTVLZo9Tnn2x
      dJiytWWh+Rq5/KAn1mJ2GgwG8tp8o7SRf65c0LYQenN1d6vXX/Iimq/mg//B5CHP
      zIaUrZfoL+2sbRIyQ5AePlDyn8Neg6sIsV9nTkPAcYvvQsS+/8xnfNq6np0zKbua
      dQIDAQAB
      -----END PUBLIC KEY-----
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-18
        • 2016-02-29
        • 1970-01-01
        • 1970-01-01
        • 2019-03-09
        • 2014-09-23
        • 2017-02-07
        • 2014-01-04
        相关资源
        最近更新 更多