RSA 使用 python 从数据生成私钥

RSA generate private key from data with python

我有一个 base64 密码信息和一个带有 public 密钥信息的 pubkey.pem。因为密钥很小(576),所以我已经恢复了重建私钥所需的所有信息:p、q 和 d。

现在我想破译这条消息,但我不知道该怎么做。事实上,如果我想使用解密函数,我需要一个 priv_key 对象,但我不知道如何从 (n,e,d)

生成它
from Crypto.PublicKey import RSA
from base64 import b64decode

#message I want to decipher
msg="e8oQDihsmkvjT3sZe+EE8lwNvBEsFegYF6+OOFOiR6gMtMZxxba/bIgLUD8pV3yEf0gOOfHuB5bC3vQmo7bE4PcIKfpFGZBA"

pub_key64 = 'MGQwDQYJKoZIhvcNAQEBBQADUwAwUAJJAMLLsk/b+SO2Emjj8Ro4lt5FdLO6WHMMvWUpOIZOIiPu63BKF8/QjRa0aJGmFHR1mTnG5Jqv5/JZVUjHTB1/uNJM0VyyO0zQowIDAQAB'

pub_keyDER = b64decode(pub_key64)
pub_key_obj = RSA.importKey(pub_keyDER)   #my weak public key
...   # how to generate priv_key_obj ???
dsmg=priv_key_obj.decrypt(msg)

您可以通过以下方式(documentation)从组件构造私有:

from Crypto.PublicKey import RSA

# assume d was correctly calculated
n = 1234....L
e = 65537L
d = 43434...L
private_key = RSA.construct((n, e, d))
dsmg = private_key.decrypt(msg)