No PEM start marker b-----BEGIN RSA PRIVATE KEY----- found

出现场景为使用python的rsa库读取openssl生成的公钥私钥进行加密和解密操作时。

RSA库用的是pkcs1格式的密钥文件,而如果之前生成的是pkcs8格式,会出现错误:

1
No PEM start marker "b'-----BEGIN RSA PRIVATE KEY-----'" found

对于公钥读取,可以用load_pkcs1_openssl_pem方法代替load_pkcs1;对于私钥,只能用openssl命令把pkcs8格式转换为pkcs1了:

1
openssl pkcs8 -in pri_key.pem -nocrypt -out private_pkcs1.pem -traditional

似乎有的版本不需要-traditional

pkcs1.pem的开头为BEGIN RSA PRIVATE KEY