在python中执行此操作(我在Ruby中执行)的最优雅方法是什么。
private_key = base64data.to_s.sub('-----BEGIN RSA PRIVATE KEY-----', '')
private_key = private_key.sub('-----END RSA PRIVATE KEY-----', '')
基本上我需要删除私钥字符串的页眉和页脚。
问候。
答案 0 :(得分:1)
直接前进:
private_key = private_key.replace('-----BEGIN RSA PRIVATE KEY-----', '')
private_key = private_key.replace('-----END RSA PRIVATE KEY-----', '')
答案 1 :(得分:1)
在Python中str.replace()
相当于Ruby中的sub
:
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)
答案 2 :(得分:0)
pyasn1 documentation为此提供了很好的衬板。密钥文件被打开,在读取过程中剥离了第一行和最后一行,然后将其他所有内容重新连接在一起。
with open('.ssh/id_rsa') as key_file:
b64_serialisation = ''.join(key_file.readlines()[1:-1])