import gmpy2 from Crypto.Util.number import long_to_bytes
q = 189239861511125143212536989589123569301 p = 386123125371923651191219869811293586459
e = 65537 c = 28767758880940662779934612526152562406674613203406706867456395986985664083182 # n = 73069886771625642807435783661014062604264768481735145873508846925735521695159 n = q * p # print(n) d = gmpy2.invert(e, (p - 1) * (q - 1)) print("d=", d) m = pow(c, d, n) print(m) print(long_to_bytes(m))
需要re的代码
1 2 3 4 5 6 7 8 9 10 11
#!/usr/bin/env python # visit https://tool.lu/pyc/ for more information # Version: Python 3.7
from Crypto.Util.number import * flag = b'************************************' m = bytes_to_long(flag) e = 0xE6B1BEE47BD63F615C7D0A43C529D219 q = 0x861261B1C4F2453537AB548A61634A53964840E48A91BA594A11EDBAEF27ED205CC3B2AAD887BABE05343F0CB6121A6A2AA1E706E85291C3A8471E5F3AFAD72F p = 0x9D1D8B0765EC685C2993291084802593252E12334C5B7E543EF952B864727511499E52D9F61DB84D55C3FB31CABD15A9E7E0E274FBED7C6F882E5550302B0BBB c = 0x1F0FCF30222579024F25DD47C9B1F2FCA131312812CB4614BBFAB1860D3C503FA73E10BCD549368729FED443DB72636D26419F2B1A1DE8DCFF67E675420C8071E0980FEA34C22C0B6F79374EF6056EDCAA393CAEFF223A4986086C1C528CBCB369CB06E65E39C5C10774D174189BE0242B40C39F9159ADAEBB9E0D2AC411CA7E
这里已经知道pqce了,基本都知道,改一下数据即可
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
import gmpy2 from Crypto.Util.number import long_to_bytes
q = 0x861261B1C4F2453537AB548A61634A53964840E48A91BA594A11EDBAEF27ED205CC3B2AAD887BABE05343F0CB6121A6A2AA1E706E85291C3A8471E5F3AFAD72F p = 0x9D1D8B0765EC685C2993291084802593252E12334C5B7E543EF952B864727511499E52D9F61DB84D55C3FB31CABD15A9E7E0E274FBED7C6F882E5550302B0BBB
e = 0xE6B1BEE47BD63F615C7D0A43C529D219 c = 0x1F0FCF30222579024F25DD47C9B1F2FCA131312812CB4614BBFAB1860D3C503FA73E10BCD549368729FED443DB72636D26419F2B1A1DE8DCFF67E675420C8071E0980FEA34C22C0B6F79374EF6056EDCAA393CAEFF223A4986086C1C528CBCB369CB06E65E39C5C10774D174189BE0242B40C39F9159ADAEBB9E0D2AC411CA7E
n = q * p print("n=",n,end='\n') d = gmpy2.invert(e, (p - 1) * (q - 1)) print("d=", d,end='\n') m = pow(c, d, n) print(m) print(long_to_bytes(m))