利用Python Crypto生成RSA公钥私钥

# -*- coding: utf-8 -*-


from Crypto import Random
from Crypto.PublicKey import RSA

print "generate private key and pulic key"

# 参考 C:\Python27\Lib\site-packages\Crypto\PublicKey\RSA.py

######################################################

# 利用伪随机数来生成私钥和公钥
random_generator = Random.new().read


rsa = RSA.generate(2048, random_generator)


private_pem = rsa.exportKey()


f = open('MY_KEY1_pri.pem', 'w')
f.write(private_pem)
f.close()


public_pem = rsa.publickey().exportKey()
f = open('MY_KEY1_pub.pem', 'w')
f.write(public_pem)
f.close()
	
######################################################
	
# 利用默认的generate来生成私钥和公钥
rsa = RSA.generate(2048)
private_pem = rsa.exportKey('PEM')
f = open('MY_KEY2_pri.pem','w')
f.write(private_pem)
f.close()
	
public_pem = rsa.publickey().exportKey()
f = open('MY_KEY2_pub.pem', 'w')
f.write(public_pem)
f.close()
	
######################################################

# 根据已有的RSA私钥来生成公钥
f = open('MY_KEY3_pri.pem','r')
rsa = RSA.importKey(f.read())
f.close()


public_pem = rsa.publickey().exportKey()
f = open('MY_KEY3_pub.pem', 'w')
f.write(public_pem)
f.close()

######################################################

# 根据已有的RSA PEM格式的私钥来转换成DER格式的私钥
f = open('MY_KEY3_pri.pem','r')
rsa = RSA.importKey(f.read())
f.close()


private_der = rsa.exportKey('DER')
f = open('MY_KEY3_pri.der', 'w')
f.write(private_der)
f.close()


RSA加密是一种常见的非对称加密算法,它使用公钥私钥进行加密和解密操作。公钥用于加密数据,而私钥则用于解密被加密的数据。 在软件开发领域,有许多可以生成RSA密钥对以及执行加密和解密操作的软件。其中一些广泛使用的软件包括OpenSSL、CryptGenKey、Java Cryptography Extension(JCE)和Python Crypto库等。 OpenSSL是一个开源的软件库,提供了许多加密和解密算法的实现,包括RSA。它可以用于生成RSA密钥对,并提供了一组API用于加密和解密数据。 CryptGenKey是一个Windows平台上的API函数,可以用于生成RSA密钥对。通过调用这个函数,开发人员可以轻松地生成公钥私钥,以便用于加密和解密操作。 Java Cryptography Extension(JCE)是Java平台上的一个扩展,提供了许多加密和解密算法的实现,包括RSA。开发人员可以使用JCE来生成RSA密钥对,并使用其API执行加密和解密操作。 Python Crypto库是一个Python软件包,提供了用于加密和解密的许多算法实现,包括RSA。它可以用于生成RSA密钥对,并提供了一组函数用于加密和解密数据。 总结来说,RSA加密公钥私钥软件是一类可以生成RSA密钥对并提供加密和解密功能的软件。常见的软件包括OpenSSL、CryptGenKey、Java Cryptography Extension(JCE)和Python Crypto库等。这些软件可以帮助开发人员在软件开发过程中轻松实现RSA加密。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cfl927096306

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值