【问题标题】:Python Openssl generate rsa key pair and write to a filePython Openssl 生成 rsa 密钥对并写入文件
【发布时间】:2015-10-23 12:17:12
【问题描述】:

我想生成一个私钥、公钥对,并将它们分别放入 private.keypublic.key 文件中。 我有以下代码。

from OpenSSL import crypto, SSL

def gen_rsa_key_pair():
    k = crypto.PKey()
    k.generate_key(crypto.TYPE_RSA, 1024)
    open("Priv.key", "wt").write(crypto.dump_privatekey(crypto.FILETYPE_PEM, k))

crypto.dump_publickey() 不可用。

如何将公钥转储到文件中?

【问题讨论】:

    标签: python file openssl rsa public-key


    【解决方案1】:

    Python OpenSSL 包装器似乎没有导出用于打印公共 RSA 密钥的 OpenSSL 函数。通过访问crypto 模块的内部,您仍然可以自己完成(假设您在本地安装了这个包),正如这段代码 sn-p 所示:

    >>> bio = crypto._new_mem_buf()
    >>> rsa = crypto._lib.EVP_PKEY_get1_RSA(k._pkey)
    >>> crypto._lib.PEM_write_bio_RSAPublicKey(bio, rsa)
    1
    >>> s = crypto._bio_to_string(bio)
    >>> print(s)
    -----BEGIN RSA PUBLIC KEY-----
    MIGJAoGBANF1gYh10F8HTQdM6+bkwAwJ0Md6bMciKbP3qS6KTki3v3m+cM17Szqq
    Mp4xxWbvnS2oeotYfn8eaZg0QUTOVDd1F7tuOxVEdvQ9ZEp1aeOCRU3b9QZSmVfg
    wJrqDG3f149mNdexI12plwaxyt6odonv6+fEQJrbhrV/nIA8N/EFAgMBAAE=
    -----END RSA PUBLIC KEY-----
    

    这仅用于说明目的。应通过新方法dump_publickey() 或类似方法将适当的解决方案添加到crypto 模块本身。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 2014-08-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多