繁体   English   中英

加载RSA公钥文件并转换为Python中的二进制数组?

[英]Load RSA public key file and convert to a binary array in Python?

我有一个用于 RSA 私钥的 PEM 格式的文本文件,例如:

-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAhlxsnlo31l3u3w5jWyYpGVaNi9eDslPHgNV+I8Jb0hxGKXka
hnVOBu+b5IrcPcivWBIPQBNJp2svD/GVFWZQsKXshZA3meiRO+/k3qjBh7aDaakW
...etc
-----END RSA PRIVATE KEY-----

我使用 Python RSA 库加载它:

import rsa

with open('somefile.pem', mode='rb') as privatefile:
    keydata = privatefile.read()
privkey = rsa.PrivateKey.load_pkcs1(keydata)
print(type(privkey))
print(privkey)

这会在括号中输出五个十进制数字,例如:

<class 'rsa.key.PrivateKey'>
PrivateKey(1234..., 7889..., etc)

如何将这些数字或 class 转换为“二进制数组”(这是将密钥传递给 API)?

更新我猜“二进制”是DER格式?

参考: https://stuvel.eu/python-rsa-doc/reference.html#classes

rsa.PrivateKey object 的文本表示在此处生成,如下所示:

    def __repr__(self) -> str:
        return 'PrivateKey(%i, %i, %i, %i, %i)' % (self.n, self.e, self.d, self.p, self.q)

所以如果你想要一个这些值的数组,你可以写:

privkey = rsa.PrivateKey.load_pkcs1(keydata)
privkey_array = [privkey.n, privkey.e, privkey.d, privkey.p, privkey.q]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM