0

在 python 中执行此操作(我在 Ruby 中执行此操作)最优雅的方法是什么。

private_key = base64data.to_s.sub('-----BEGIN RSA PRIVATE KEY-----', '')
private_key = private_key.sub('-----END RSA PRIVATE KEY-----', '')

基本上我需要剥离私钥字符串的页眉和页脚。

问候。

4

3 回答 3

2

直截了当:

private_key = private_key.replace('-----BEGIN RSA PRIVATE KEY-----', '')
private_key = private_key.replace('-----END RSA PRIVATE KEY-----', '')
于 2013-11-04T17:46:49.933 回答
1

在 Pythonstr.replace()中相当于sub在 Ruby 中:

private_key = base64data.replace('-----BEGIN RSA PRIVATE KEY-----', '')
private_key = private_key.replace('-----END RSA PRIVATE KEY-----', '')

或者使用正则表达式:

import re
private_key = re.sub(r'-----(BEGIN|END) RSA PRIVATE KEY-----', '', base64data)
于 2013-11-04T17:49:28.880 回答
0

pyasn1文档对此有一个很好的衬里。打开密钥文件,在读取过程中删除第一行和最后一行,然后将其他所有内容重新连接在一起。

with open('.ssh/id_rsa') as key_file:
    b64_serialisation = ''.join(key_file.readlines()[1:-1])
于 2019-11-15T01:34:17.977 回答