msg = "this is msg to encrypt"
pub_key = M2Crypto.RSA.load_pub_key('mykey.py') // This method is taking PEM file.
encrypted = pub_key.public_encrypt(msg, M2Crypto.RSA.pkcs1_padding)
现在我试图将包含radix64格式公钥的文件作为此方法中的参数,并且无法获得预期结果,即使用radix64格式公钥进行加密。
Python API中是否有其他方法可以在尝试某种机制后使用公钥加密msg?
我从公钥服务器获取公钥,包含一些HTML包装和radix64格式。如何转换公钥以便任何加密方法都可以接受它?
答案 0 :(得分:6)
如果有人搜索此问题,我收到相同的错误消息:
M2Crypto.RSA.RSAError: no start line
在我的情况下,事实证明我的密钥是unicode类型。这是通过将密钥转换回ascii来解决的:
key.encode('ascii')
答案 1 :(得分:1)
你之前问过这个问题吗?看看我对这个问题的回答,
how to convert base64 /radix64 public key to a pem format in python
答案 2 :(得分:0)
公钥中某处出现错误。它似乎是一个PGP公钥但具有不同的行长度,因此它不能直接用作RSA公钥。