我正在使用带有 PKCS1 填充的 Python M2Crypto 的 RSA 对电子邮件进行编码以与外部网站的 API 一起使用。使用 unicode 时,编码的电子邮件没有从 API 返回结果,但是当我使用 str(unicode_email) 时,我收到了正确的信息。
我的印象是,在这种情况下,字符串的 unicode 和字节表示都应该有效。有谁知道为什么 unicode 失败?
参考代码:
from M2Crypto import RSA
email = u'email@example.com' #fails
email = str(email) # succeeds
rsa = RSA.load_pub_key('rsa_pubkey.pem')
result = rsa.public_encrypt(email, RSA.pkcs1_padding).encode('base64')