一. 使用cryptography 包获取 RSA 公钥
pip3 install cryptography
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives import serialization
def public_key(rsaExponent, rsaModulus):
'''
根据cryptography包下的rsa模块,对指数模数进行处理生成公钥
:param rsaExponent:指数
:param rsaModulus:模数
:return:公钥
'''
rsaExponent = int(rsaExponent, 16)
rsaModulus = int(rsaModulus, 16)
pubkey = rsa.RSAPublicNumbers(rsaExponent, rsaModulus).public_key(default_backend())
return pubkey
if __name__ == '__main__':
rsaExponent = "10001"
rsaModulus = "D70D7EA6DCF57CE38B0E84CFBF585921D9405872CC035FA7B725D9AF025CA37B823904C5FEA63C179278BE6A4E87E3F424EA930DEFC09FBDFC46EDB7684252CC66005CB3F4EC84F8A094DDC687F867657A1E140EE58AD98CC5DE4134535F5351CC57ACDBB407A848E75D10CDAE2D0F69B854985327788F6BA5E96A75E047E9F1"
pubkey = public_key(rsaExponent, rsaModulus)
二. 使用PyCrypto的Crypto.PublicKey.RSA.construct()功能获取 RSA 公钥
from Crypto.PublicKey.RSA import construct
def public_key(rsaExponent, rsaModulus):
e = int(rsaExponent, 16)
n = int(rsaModulus, 16)
pubkey = construct((n, e))
return pubkey
if __name__ == '__main__':
rsaExponent = "10001"
rsaModulus = "D70D7EA6DCF57CE38B0E84CFBF585921D9405872CC035FA7B725D9AF025CA37B823904C5FEA63C179278BE6A4E87E3F424EA930DEFC09FBDFC46EDB7684252CC66005CB3F4EC84F8A094DDC687F867657A1E140EE58AD98CC5DE4134535F5351CC57ACDBB407A848E75D10CDAE2D0F69B854985327788F6BA5E96A75E047E9F1"
pubkey = public_key(rsaExponent, rsaModulus)