1. 程式人生 > >利用Python Crypto生成RSA公鑰私鑰

利用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()