例题
    不上网的好兄弟🥦

    1. e1=65537
    2. n1=824309976713255040678774414315188911324305343946939068909416612709427405647590959202342069019687909827092434444738101792679253192217384554228922429405912765227299967576480004693502002706412618405848902047952249003683180646566555226980812871255985212785459728851482116385274886923030294336883118688943249637504111890941209117072125746914179382718841738938542647288128064878216596964710061943380933923317756767868900496106852496453030519617669299982705549374229502330525781052290174942572613344201021252879326095620935532484506572612967292839330025773029359908312962614731172968139177410904955609738349904997096375511564814382685053981249781750176436863678070180664579983017200009530939815220400486376740060465859081480696946249903279025539697834581358967123153969680757041410395146786259547823312557522601991424424780515118072828799902432329203842554206968777062590538956711084620951141331083100850610394090226480405466880324484810299761769275660553824905489329036439444269606193857756472844072315538452095272865161396795572965527449721108417342506231371917632592432396627440113643668181341007626924926752996257541349928107829776244387124514376067059436403317102173969866403920047378658985491771106094848218483420872665866345564496827
    3. c1=619914776107204299421445515173752551578219512744832453386701408956131174382320293166571812398142061624071844793902243230988065164689738932213640598607827763120716664826659348935506492768840667618225389848502303543184323923750014314468273838436900100602616360301578680417070089037669208417514209496064782776638328659280595442584379339709690595064375146973041893766612952550104106304945793198707913036776562970941681277387345166363055403617979919206215550071922838408131362316374998986152131970583571257394242002989402779457115646413931644663555330819307049576617764087014494844129906098270686406058331758868723651041516567453323769768954687687202307774567305854473941230877789037414544400622116272774149579612412707977679341464711326395329328746997671371678549747416132575437991623923520089934467780767741968218870533906551561755021778559582638320070802534402702441689980582215813996309661425381981953031455267480573603282477682645039060338023983236132572154559608798674661049316746566458858853902292172161686826090441354261889811244610252422433735484707855667726547016802906293840413275921015090833094030889513775808522094907659133321728552859456301911921882441570565302485792013026978232768832198065043569203133298692101550276793242
    4. e2=65537
    5. n2=905589252405843373769915380293297111534760160714737080968066656272265067237261488456971858456917989327188732044692331992189086519820435633306176464411261896021205034205490970644012401822191880790030875680376477319350989208508591406379353590606990790187262655027873609762696926884097121412806124968361945732028625146592611563133972373222186510357547047870461524686536342088980414561620202107652793943447542030500100100438546978201140485266000991269033918263304132180594282910120350517431177243383393951480422824952551390879069092986257009179295057946730605973160346524195449500021703749379427308594689270698548425547616170119689641602115020951172647164330653185839148908281150010508830578946902028400175833666756810132914706574636302946981088249485384995123961868977200184192366871488238130493276320548228987765469367680884015794318055385681062658024380060853629777987397931994453740025625110420802340709951010187420093537470088728911794883713099533087772597248823814645583216509715894593709142551596518622892980794670674353243620390795154580419812174256794942916769770550059026084217681241980763703393095418708693297369255695621169620925250022220663830988716484961599451891633153226183322921970730586750473413763286928431026521685503
    6. c2=673931551637686573733931629946259955273050809105413358970865200931337620800601472110603043036230330369308198862836020608370123474012622263062171294537227742055596124838615523641277612651513376399422388728998723881390750022802888924469874997383403315092150360404739350111053494140814081500234944823944838342851486117828948012785473829786919168505899092926364319233270563625167199627187969831097779544020398227294075980803974781408640110508283074795045029934267450514279868306481527002838558049458432355280575187364797865249444744186956192622171429969229590383633312442290257337521345975778920638983724068169611670153900548976779043697802190755538297452687741381067668713313038012240461367852752324450730890453516495687244181415711446356025503068925532832441729497205951722171806849453544384230181139694995076734472488950052672657187723121538897634719634849656096065795251013915979636071103988880297602168171474689743253367371894201376237227289251967333720190335216940010089300129979229084907563995802063939925492798235466279747474279314734378363118765257958698347531646918232605837643662036855703017542230709453864001404693532353827244434156882808171822447915265832615174700571049925710515965628161428609658333071907595502748554057056

    如果在信息传递的过程中,不小心在两次通信中生成的大素数有一个是相同的,那么就可以通过计算n的公约数来求密文
    举一个小例子

    1. n1 = 21 n2 = 27
    2. p1 = 3 p2 = 3
    3. q1 = 7 q2 = 9

    通过 gcd(n1,n2) 求 n1,n2的公约数为 3 , 再使用公式

    1. q1 = n1/p1
    2. q2 = n2/p2

    就可以得到p,q的值了, 接下在就行简单的解密过程了

    1. from Crypto.Util.number import getPrime
    2. import gmpy2
    3. import libnum
    4. e1=65537
    5. p1=29008261717768474732906182649544179950245731333856747822738033258581069736557764859442064091137212340680268427765919841814967050794545225995389669474019775859945436546756236044499372530353003845881686675641839555639930200984860821453188112209554136400254884598545226639935680295845162244784506051553763186071719627985082234455247206581278772200229668817768329850670949599442836344094584680854657993521481101663964847428180681244543566290820854582896400157941001341667919766167231693578862015420077985863396707106766463482770702693985545871194934489250728689808073962247463444300011793100734752341705797978671216386783
    6. q1=28416386501654430231634023011382380906765239866990399332431436340108491064711397713237567536296763666523646628356952301922895839797701232191691037574805309021987595282658712896258188715354825289682378642085500458887832617987265563703665762071475093524818948426458703480477759743929208116927981543222603237052735985771173613152943586906535242363863845503107606569979697961597315510194369897277252404678573252886606721258047776336698313722607174171682001084242086119017366968245890650225737466861293317900336322062217879889573106431966815073236137390496996913378630736551144302472127942702441992143356658213344341333669
    7. n1=824309976713255040678774414315188911324305343946939068909416612709427405647590959202342069019687909827092434444738101792679253192217384554228922429405912765227299967576480004693502002706412618405848902047952249003683180646566555226980812871255985212785459728851482116385274886923030294336883118688943249637504111890941209117072125746914179382718841738938542647288128064878216596964710061943380933923317756767868900496106852496453030519617669299982705549374229502330525781052290174942572613344201021252879326095620935532484506572612967292839330025773029359908312962614731172968139177410904955609738349904997096375511564814382685053981249781750176436863678070180664579983017200009530939815220400486376740060465859081480696946249903279025539697834581358967123153969680757041410395146786259547823312557522601991424424780515118072828799902432329203842554206968777062590538956711084620951141331083100850610394090226480405466880324484810299761769275660553824905489329036439444269606193857756472844072315538452095272865161396795572965527449721108417342506231371917632592432396627440113643668181341007626924926752996257541349928107829776244387124514376067059436403317102173969866403920047378658985491771106094848218483420872665866345564496827
    8. c1=619914776107204299421445515173752551578219512744832453386701408956131174382320293166571812398142061624071844793902243230988065164689738932213640598607827763120716664826659348935506492768840667618225389848502303543184323923750014314468273838436900100602616360301578680417070089037669208417514209496064782776638328659280595442584379339709690595064375146973041893766612952550104106304945793198707913036776562970941681277387345166363055403617979919206215550071922838408131362316374998986152131970583571257394242002989402779457115646413931644663555330819307049576617764087014494844129906098270686406058331758868723651041516567453323769768954687687202307774567305854473941230877789037414544400622116272774149579612412707977679341464711326395329328746997671371678549747416132575437991623923520089934467780767741968218870533906551561755021778559582638320070802534402702441689980582215813996309661425381981953031455267480573603282477682645039060338023983236132572154559608798674661049316746566458858853902292172161686826090441354261889811244610252422433735484707855667726547016802906293840413275921015090833094030889513775808522094907659133321728552859456301911921882441570565302485792013026978232768832198065043569203133298692101550276793242
    9. n1_ol = (p1-1)*(q1-1)
    10. e2=65537
    11. p2=29008261717768474732906182649544179950245731333856747822738033258581069736557764859442064091137212340680268427765919841814967050794545225995389669474019775859945436546756236044499372530353003845881686675641839555639930200984860821453188112209554136400254884598545226639935680295845162244784506051553763186071719627985082234455247206581278772200229668817768329850670949599442836344094584680854657993521481101663964847428180681244543566290820854582896400157941001341667919766167231693578862015420077985863396707106766463482770702693985545871194934489250728689808073962247463444300011793100734752341705797978671216386783
    12. q2=31218321911758725262641264544273091969770000437195927621519348591685216690780159665370877797464593736322288823785921736299427583454269605453118914226531481670284475482887737160806536427086015247827565796216950059300727219056968512803067543969349155153638356001143776681725489817215982706453000587716366746160967415719391048527241185436934510948174134730584016161325490774552017155380553761311411397494107112131019774029088071262648041691040688770482053759445029125769594519046113288284952212077358169934371248462111374958967016120834878915693825454218907233538659018692509582497575166536325369627476902046824235247841
    13. n2=905589252405843373769915380293297111534760160714737080968066656272265067237261488456971858456917989327188732044692331992189086519820435633306176464411261896021205034205490970644012401822191880790030875680376477319350989208508591406379353590606990790187262655027873609762696926884097121412806124968361945732028625146592611563133972373222186510357547047870461524686536342088980414561620202107652793943447542030500100100438546978201140485266000991269033918263304132180594282910120350517431177243383393951480422824952551390879069092986257009179295057946730605973160346524195449500021703749379427308594689270698548425547616170119689641602115020951172647164330653185839148908281150010508830578946902028400175833666756810132914706574636302946981088249485384995123961868977200184192366871488238130493276320548228987765469367680884015794318055385681062658024380060853629777987397931994453740025625110420802340709951010187420093537470088728911794883713099533087772597248823814645583216509715894593709142551596518622892980794670674353243620390795154580419812174256794942916769770550059026084217681241980763703393095418708693297369255695621169620925250022220663830988716484961599451891633153226183322921970730586750473413763286928431026521685503
    14. c2=673931551637686573733931629946259955273050809105413358970865200931337620800601472110603043036230330369308198862836020608370123474012622263062171294537227742055596124838615523641277612651513376399422388728998723881390750022802888924469874997383403315092150360404739350111053494140814081500234944823944838342851486117828948012785473829786919168505899092926364319233270563625167199627187969831097779544020398227294075980803974781408640110508283074795045029934267450514279868306481527002838558049458432355280575187364797865249444744186956192622171429969229590383633312442290257337521345975778920638983724068169611670153900548976779043697802190755538297452687741381067668713313038012240461367852752324450730890453516495687244181415711446356025503068925532832441729497205951722171806849453544384230181139694995076734472488950052672657187723121538897634719634849656096065795251013915979636071103988880297602168171474689743253367371894201376237227289251967333720190335216940010089300129979229084907563995802063939925492798235466279747474279314734378363118765257958698347531646918232605837643662036855703017542230709453864001404693532353827244434156882808171822447915265832615174700571049925710515965628161428609658333071907595502748554057056
    15. n2_ol = (p2-1)*(q2-1)
    16. d1 = gmpy2.invert(e1,n1_ol)
    17. m1= gmpy2.powmod(c1,d1,n1)
    18. flag_1 = libnum.n2s(m1)
    19. d2 = gmpy2.invert(e2,n2_ol)
    20. m2= gmpy2.powmod(c2,d2,n2)
    21. flag_2 = libnum.n2s(m2)
    22. print(str(flag_1) + str(flag_2))