大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本文实例讲述了Python3非对称加密算法RSA。分享给大家供大家参考,具体如下:
作为一家“创意+整合+营销”的成都网站建设机构,我们在业内良好的客户口碑。创新互联公司提供从前期的网站品牌分析策划、网站设计、成都网站建设、成都网站制作、创意表现、网页制作、系统开发以及后续网站营销运营等一系列服务,帮助企业打造创新的互联网品牌经营模式与有效的网络营销方法,创造更大的价值。python3 可以使用 Crypto.PublicKey.RSA
和 rsa 生成公钥、私钥。
其中 python3.6 Crypto 库的安装方式请参考前面一篇《Python3对称加密算法AES、DES3》
rsa 加解密的库使用 pip3 install rsa
就行了
C:\WINDOWS\system32>pip3 install rsa
Collecting rsa
Downloading https://files.pythonhosted.org/packages/e1/ae/baedc9cb175552e95f3395c43055a6a5e125ae4d48a1d7a924baca83e92e/rsa-3.4.2-py2.py3-none-any.whl (46kB)
100% |████████████████████████████████| 51kB 99kB/s
Collecting pyasn1>=0.1.3 (from rsa)
Downloading https://files.pythonhosted.org/packages/a0/70/2c27740f08e477499ce19eefe05dbcae6f19fdc49e9e82ce4768be0643b9/pyasn1-0.4.3-py2.py3-none-any.whl (72kB)
100% |████████████████████████████████| 81kB 289kB/s
Installing collected packages: pyasn1, rsa
Successfully installed pyasn1-0.4.3 rsa-3.4.2
使用 Crypto.PublicKey.RSA 生成公钥、私钥:
import Crypto.PublicKey.RSA import Crypto.Random x = Crypto.PublicKey.RSA.generate(2048) a = x.exportKey("PEM") # 生成私钥 b = x.publickey().exportKey() # 生成公钥 with open("a.pem", "wb") as x: x.write(a) with open("b.pem", "wb") as x: x.write(b) y = Crypto.PublicKey.RSA.generate(2048, Crypto.Random.new().read) # 使用 Crypto.Random.new().read 伪随机数生成器 c = y.exportKey() # 生成私钥 d = y.publickey().exportKey() #生成公钥 with open("c.pem", "wb") as x: x.write(c) with open("d.pem", "wb") as x: x.write(d)