如何在Python 3中使用RSA或类似的加密?
答
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以将其写入磁盘。
你有没有试过你发现Python 2.7用于Python 3?可以为两者安装许多库。 –