N: Public Modulus
E: Public Exponent
D: Private Exponent
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
from cryptography.hazmat.primitives.asymmetric import rsa, padding from cryptography.hazmat.primitives import hashes from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives import serialization n = xxxxxx e = 65537 d = yyyyyy (p, q) = rsa.rsa_recover_prime_factors(n, e, d) dmp1 = d % (p - 1) dmq1 = d % (q - 1) iqmp = q ^ (-1) % p print("p=" + str(p)) print("q=" + str(q)) print("dmp1=" + str(dmp1)) print("dmq1=" + str(dmq1)) print("iqmp=" + str(iqmp)) print("pq=" + str(p * q)) private_numbers = rsa.RSAPrivateNumbers( p=p, q=q, d=d, dmp1=dmp1, dmq1=dmq1, iqmp=iqmp, public_numbers=rsa.RSAPublicNumbers( e=e, n=n, ) ) pk = private_numbers.private_key(backend=default_backend()) pem = pk.private_bytes( encoding=serialization.Encoding.PEM, format=serialization.PrivateFormat.TraditionalOpenSSL, encryption_algorithm=serialization.NoEncryption() ) print(str(pem, "utf-8")) |
Recover RSA Private Key from N E D by @sskaje: https://sskaje.me/2018/11/recover-rsa-private-key-from-n-e-d/
Incoming search terms:
Link to this post!