如何在Python 3中使用RSA或类似的加密?

问题描述:

如何在Python 3中使用RSA或类似的公钥 - 私钥加密,最好是使用内置模块?到目前为止,我发现的所有资源都用于Python 2.7如何在Python 3中使用RSA或类似的加密?

+0

你有没有试过你发现Python 2.7用于Python 3?可以为两者安装许多库。 –

Python 3在处理加密的标准库中没有太多的功能。相反,你会得到散列库 如果您需要安全散列或消息摘要算法,然后Python的标准库中有你在 hashlib模块

如果你想加密与RSA的数据,那么你需要覆盖要么可以访问公共/专用RSA密钥对,要么需要自己创建。对于这个例子,我们只会生成我们自己的。因为它很容易做到,我们将做到这一点在Python解释器: 必须先安装PyCrypto包蟒蛇3

>>> from Crypto.PublicKey import RSA 

>>> code = 'nooneknows' 

>>> key = RSA.generate(2048) 

>>> encrypted_key = key.exportKey(passphrase=code, pkcs=8, 

protection="scryptAndAES128-CBC") 

>>> with open('/path_to_private_key/my_private_rsa_key.bin', 'wb') as f: 

f.write(encrypted_key) 

>>> with open('/path_to_public_key/my_rsa_public.pem', 'wb') as f: 

f.write(key.publickey().exportKey()) 

首先,我们导入RSA从Crypto.PublicKey。然后我们创建一个愚蠢的密码。接下来我们生成一个2048位的RSA密钥。现在我们得到了好东西。为了生成私钥,我们需要调用我们的RSA密钥实例的exportKey方法,并为其提供我们的密码,使用哪种PKCS标准以及使用哪种加密方案来保护我们的私钥。然后我们将文件写入磁盘。

接下来,我们通过我们的RSA密钥实例的publickey方法创建我们的公钥。我们在这段代码中使用了一个快捷方式,只需将publickey方法调用连接到exportKey以将其写入磁盘。