首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在python中将base64 /radix64公钥转换为pem格式

如何在python中将base64 /radix64公钥转换为pem格式
EN

Stack Overflow用户
提问于 2009-09-07 06:41:36
回答 1查看 4.9K关注 0票数 0

有没有任何python方法可以将base64编码的密钥转换为pem格式。

如何将ASCII装甲PGP公钥转换为MIME编码格式。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2009-09-07 15:33:57

ASCII-装甲和PEM非常相似。你只需要改变开始/结束标记,去掉PGP头和校验和即可。我以前在PHP中做过这样的事情。我刚帮你把它移植到了Python,

代码语言:javascript
复制
import re
import StringIO

def pgp_pubkey_to_pem(pgp_key):
    # Normalise newlines
    pgp_key = re.compile('(\n|\r\n|\r)').sub('\n', pgp_key)

    # Extract block
    buffer = StringIO.StringIO()
    # Write PEM header
    buffer.write('-----BEGIN RSA PUBLIC KEY-----\n')

    in_block = 0
    in_body = 0
    for line in pgp_key.split('\n'):
        if line.startswith('-----BEGIN PGP PUBLIC KEY BLOCK-----'):
            in_block = 1
        elif in_block and line.strip() == '':
            in_body = 1
        elif in_block and line.startswith('-----END PGP PUBLIC KEY BLOCK-----'):
            # No checksum, ignored for now
            break
        elif in_body and line.startswith('='):
            # Checksum, end of the body
            break
        elif in_body:
            buffer.write(line+'\n')

    # Write PEM footer
    buffer.write('-----END RSA PUBLIC KEY-----\n')

    return buffer.getvalue()
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1387867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档