简体   繁体   English

RSA使用python从数据生成私钥

[英]RSA generate private key from data with python

I have a cipher message in base64 and a pubkey.pem with the public key information. 我在base64中有一个密文,在公共密钥信息中有一个pubkey.pem。 So because the key is small(576) I have recovered all the needed information to reconstruct the private key : p,q and d. 因此,由于密钥很小(576),我已经恢复了所有必要的信息以重建私钥:p,q和d。

Now I want to decipher the message but I don't know how to do it. 现在,我想破译邮件,但我不知道该怎么做。 Indeed if I want to use the decrypt function I need an priv_key object but I don't know how to generate it from (n,e,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)

You can construct a private from components in the following way ( 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)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM