如何使用公钥加密?

5 投票
3 回答
5052 浏览
提问于 2025-04-15 14:29
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中有没有其他方法可以在尝试了一些机制后,用公钥加密消息呢?

我从公钥服务器获取我的公钥,它是带有一些HTML包装的radix64格式。请问我该如何转换这个公钥,以便它能被任何加密方法接受呢?

3 个回答

0

公钥的某个地方出错了。看起来这是一个PGP公钥,但它的每行长度不一样,所以不能直接当作RSA公钥来使用。

1

你之前问过这个问题吗?看看我对这个问题的回答,

如何在Python中将base64/radix64公钥转换为pem格式

6

如果有人在找这个问题,我之前也遇到了同样的错误信息:

M2Crypto.RSA.RSAError: no start line

在我的情况下,发现我的键是unicode类型。通过把键转换回ascii格式,这个问题就解决了:

key.encode('ascii')

撰写回答