使用RSA python加密消息时出错

时间:2015-05-28 16:41:59

标签: python python-3.x encryption rsa

使用示例代码使用RSA加密消息,但是我收到以下错误。

from Crypto.PublicKey import RSA
from Crypto.Util import randpool

blah = randpool.RandomPool()
RSAKey = RSA.generate(1024, blah.get_bytes)

RSAPubKey = RSAKey.publickey()
print(RSAPubKey.encrypt("Hello.", 32))

以下是示例代码

server {
    location ^~ /sabnzbd {
            proxy_pass http://127.0.0.1:8080;
    }

    location ^~ /transmission {
            proxy_pass http://127.0.0.1:9091;
    }

    location ^~ /sickrage {
            proxy_pass http://127.0.0.1:8081;
    }

    location ^~ /couchpotato {
            proxy_pass http://127.0.0.1:5050;
    }
}

操作系统使用的是Windows,可能是由于这个问题造成的?

1 个答案:

答案 0 :(得分:12)

该错误表明encrypt方法不支持加密字符串消息。首先尝试使用encode将字符串编码为字节,例如:

print(RSAPubKey.encrypt("Hello.".encode('utf-8'), 32))

值得注意的是,根据文档,encrypt执行"教科书" RSA加密,由于缺少填充而不安全。相反,您应该使用Crypto.Cipher.PKCS1_OAEPCrypto.Cipher.PKCS1_v1_5