python将RSA密钥(PEM格式)转换为十六进制字符串

粘糊糊的

我想将我的RSA密钥转换为十六进制字符串,但是不确定如何执行此操作。

我生成我的密钥是这样的:

def generate_RSA(self, bits=1024):
        new_key = RSA.generate(bits, e=65537)
        self.public_key = new_key.publickey().exportKey("PEM")
        public_key_file = open('public_key.key', 'w')
        public_key_file.write(self.public_key)
        public_key_file.close()

        self.private_key = new_key.exportKey("PEM")
        private_key_file = open('private_key.key', 'w')
        private_key_file.write(self.private_key)
        private_key_file.close()

这给出了例如

-----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqMROLBpbqrHi4WC4XAElMXoNh 0EMODB763pcTiwpOLc72K8DqQ48BuVwKXit9uvWz1pth/2aJfXZuX2awQEPCmeUe XtDca/ljksnq/3xo7Ph0/zoeKyJbLziLYjOgn22rxtJ9cVV7kFFm2whxFAGP0h6N QcFrMSUaRA2x2riQNwIDAQAB -----END PUBLIC KEY-----

很好,但是我想(1)剥离PEM文件的页眉和页脚,并(2)以十六进制形式发送RSA密钥,基本上是这样的字符串(随机):

00a9e885395f47d47a9b58560d3f14254efa0692464756f9c0b7a046f328674a1951e1d008679d44e556bea3c747ae485e41ab0f9b24ab9cca99b8097a03e1c0e5455b983f432e5f02d6a87ba27af412efae3db9e219e9dc2627a74c1840b85048e251cee2b1abcbabf7c41de7bb5091c68ac1ac7d91f48afcea1c4bf6683c4011

我怎样才能做到这一点?

埃德温·戈迪略

您可能需要的是DER编码,我对Python确实了解不多,但您可能会使用类似

new_key.publickey().exportKey("DER")

这将最有可能为您提供DER编码的密钥(二进制格式),此后您要做的就是将该二进制格式转换为十六进制,然后就可以进行操作了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章