如何解决载入RSA公钥文件并转换为Python中的二进制数组?
我有一个PEM格式的RSA私钥文本文件,例如:
-----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)
如何将这些数字或类转换为“二进制数组”(将密钥传递给API)?
更新 我猜“二进制”是DER格式?
参考:https://stuvel.eu/python-rsa-doc/reference.html#classes
解决方法
rsa.PrivateKey
对象的文本表示形式正在生成here,如下所示:
def __repr__(self) -> str:
return 'PrivateKey(%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]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。