如何使用公钥加密?

时间:2009-09-21 17:36:19

标签: python encryption encoding

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格式。如何转换公钥以便任何加密方法都可以接受它?

3 个答案:

答案 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公钥。