【发布时间】:2014-02-11 18:14:38
【问题描述】:
我想使用 python 打印出 .pem 密钥的二进制形式(不确定我是否会这样引用它)。为了澄清,我想在 python 中执行此 unix 命令将打印出的内容:
cat privateKey.pem | openssl rsa -pubout -outform DER
我不能只使用子进程调用此命令,因为我希望它在 Windows 上工作。我查看了 M2Crypto 和 PyCrypto 库,通过 M2Crypto 库,我可以使用
from M2Crypto import RSA
rsaKey = RSA.load_key('privateKey.pem')
但我没有看到任何打印出二进制形式的 rsaKey 方法。
编辑:
这是我目前所拥有的:
import M2Crypto
key = M2Crypto.RSA.load_key('key.pem')
bio = M2Crypto.BIO.MemoryBuffer()
key.save_key_der_bio(bio)
der = bio.read()
但是der 与 openssl 打印出来的不一样。我将 openssl 的输出通过管道传输到 hexdump 以进行比较。
【问题讨论】:
-
您的密钥加密了吗? (您可以通过在文本编辑器中打开文件来检查)
-
不是。它看起来像 -----BEGIN PRIVATE KEY----SOME BASE 64 ENCODED TEXT-----END PRIVATE KEY-----
-
你试过
save_key_der吗? -
是的,这与 save_key_der_bio 的作用相同,但作用于文件。该文件的内容与我保存到简历并阅读该简历时的内容相同。
标签: python rsa private-key pycrypto m2crypto