题目链接:[BJDCTF 2nd]rsa1
先得到p和q
import z3
e = 9694057
a = 221377440242298719950608446309409320981489337628158261184768927773937200895914051844937837116910821071926070818733832212830481195803671240652905409062651904286896425051912898609594888803228282027904730424675294764089369264305231756666089371388657783917427713711043633396988739065186370415055847196357178453658
b = 2288395242404508004160605354407303307639322383848638016637804104669828295112694746200605372098555639995167249415599610396317691240513083746349049628650140
c = 66805697072517715654457148785067220174586984490856439514277974772710001947519278510800396890681741549934589320907955040309094381824019497963938649362303091214450164296697211842660706678522670252296503517617892443590775238703910733318855469986671501281769947510608019145390807035628508526614193256063583983961
p = z3.Int('p')
q = z3.Int('q')
z3.solve(p*p+q*q == a,p-q==b)
再得到flag
import gmpy2
e = 9694057
c = 66805697072517715654457148785067220174586984490856439514277974772710001947519278510800396890681741549934589320907955040309094381824019497963938649362303091214450164296697211842660706678522670252296503517617892443590775238703910733318855469986671501281769947510608019145390807035628508526614193256063583983961
q = 9314269375675656652917215211734394205647175467287482229090450294575318042491531532394709966892290237028953762347702239387523099972446145960653584136672757
p = 11602664618080164657077820566141697513286497851136120245728254399245146337604226278595315338990845877024121011763301849783840791212959229707002633765322897
n = p * q
phi_n = (p-1) * (q-1)
d = gmpy2.invert(e, phi_n)
m = pow(c,d,n)
flag = bytes.fromhex(hex(m)[2:])
print(flag)
flag:flag{7f2b6f6a-b267-45b6-91a3-384062c0970a}