刷题记录 7.3

[De1CTF2019]babyrsa

看到有个hint求hint
n可以分解

import gmpy2
from Crypto.Util.number import long_to_bytes
p=127587319253436643569312142058559706815497211661083866592534217079310497260365307426095661281103710042392775453866174657404985539066741684196020137840472950102380232067786400322600902938984916355631714439668326671310160916766472897536055371474076089779472372913037040153356437528808922911484049460342088834871
q=127587319253436643569312142058559706815497211661083866592534217079310497260365307426095661281103710042392775453866174657404985539066741684196020137840472950102380232067786400322600902938984916355631714439668326671310160916766472897536055371474076089779472372913037040153356437528808922911484049460342088835693
e = 46531
n = 16278524034278364842964386062476113517067911891699789991355982121084973951738324063305190630865511554888330215827724887964565979607808294168282995825864982603759381323048907814961279012375346497781046417204954101076457350988751188332353062731641153547102721113593787978587135707313755661153376485647168543680503160420091693269984008764444291289486805840439906620313162344057956594836197521501755378387944609246120662335790110901623740990451586621846212047950084207251595169141015645449217847180683357626383565631317253913942886396494396189837432429078251573229378917400841832190737518763297323901586866664595327850603
c = 14992132140996160330967307558503117255626925777426611978518339050671013041490724616892634911030918360867974894371539160853827180596100892180735770688723270765387697604426715670445270819626709364566478781273676115921657967761494619448095207169386364541164659123273236874649888236433399127407801843412677293516986398190165291102109310458304626261648346825196743539220198199366711858135271877662410355585767124059539217274691606825103355310348607611233052725805236763220343249873849646219850954945346791015858261715967952461021650307307454434510851869862964236227932964442289459508441345652423088404453536608812799355469
phi=(p-1)*(q-1)
d=gmpy2.invert(e,phi)
print(long_to_bytes(pow(c,d,n)))
#'orz...you.found.me.but.sorry.no.hint...keep.on.and.enjoy.it!

好哈哈哈哈
而flag存在的代码里
q=q1p
然后要求e1和e2
首先第一个是一组n和c
那肯定是crt了

import gmpy2
import math
def  merge(a1,n1,a2,n2):
    d = math.gcd(n1,n2)
    c = a2-a1
    if c%d!=0:
        return 0
    c = (c%n2+n2)%n2
    c = c//d
    n1 = n1//d
    n2 = n2//d
    c *= gmpy2.invert(n1,n2)
    c %= n2
    c *= n1*d
    c += a1
    global n3
    global a3
    n3 = n1*n2*d
    a3 = (c%n3+n3)%n3
    return 1
def exCRT(a,n):
    a1=a[0]
    n1=n[0]
    le= len(a)
    for i in range(1,le):
        a2 = a[i]
        n2=n[i]
        if not merge(a1,n1,a2,n2):
            return -1
        a1 = a3
        n1 = n3
    global mod
    mod=n1
    return (a1%n1+n1)%n1
def exCRT_getequation(a,n):
    a1=a[0]
    n1=n[0]
    le= len(a)
    for i in range(1,le):
        a2 = a[i]
        n2=n[i]
        if not merge(a1,n1,a2,n2):
            return -1
        a1 = a3
        n1 = n3
    return (a1,n1)
#a为余数列表
#n为模数列表
n =  [20129615352491765499340112943188317180548761597861300847305827141510465619670536844634558246439230371658836928103063432870245707180355907194284861510906071265352409579441048101084995923962148527097370705452070577098780246282820065573711015664291991372085157016901209114191068574208680397710042842835940428451949500607613634682684113208766694028789275748528254287705759528498986306494267817198340658241873024800336013946294891687591013414935237821291805123285905335762719823771647853378892868896078424572232934360940672962436849523915563328779942134504499568866135266628078485232098208237036724121481835035731201383423, 31221650155627849964466413749414700613823841060149524451234901677160009099014018926581094879840097248543411980533066831976617023676225625067854003317018794041723612556008471579060428898117790587991055681380408263382761841625714415879087478072771968160384909919958010983669368360788505288855946124159513118847747998656422521414980295212646675850690937883764000571667574381419144372824211798018586804674824564606122592483286575800685232128273820087791811663878057827386379787882962763290066072231248814920468264741654086011072638211075445447843691049847262485759393290853117072868406861840793895816215956869523289231421, 29944537515397953361520922774124192605524711306753835303703478890414163510777460559798334313021216389356251874917792007638299225821018849648520673813786772452822809546571129816310207232883239771324122884804993418958309460009406342872173189008449237959577469114158991202433476710581356243815713762802478454390273808377430685157110095496727966308001254107517967559384019734279861840997239176254236069001453544559786063915970071130087811123912044312219535513880663913831358790376650439083660611831156205113873793106880255882114422025746986403355066996567909581710647746463994280444700922867397754748628425967488232530303, 25703437855600135215185778453583925446912731661604054184163883272265503323016295700357253105301146726667897497435532579974951478354570415554221401778536104737296154316056314039449116386494323668483749833147800557403368489542273169489080222009368903993658498263905567516798684211462607069796613434661148186901892016282065916190920443378756167250809872483501712225782004396969996983057423942607174314132598421269169722518224478248836881076484639837343079324636997145199835034833367743079935361276149990997875905313642775214486046381368619638551892292787783137622261433528915269333426768947358552919740901860982679180791]
c =  [19131432661217908470262338421299691998526157790583544156741981238822158563988520225986915234570037383888112724408392918113942721994125505014727545946133307329781747600302829588248042922635714391033431930411180545085316438084317927348705241927570432757892985091396044950085462429575440060652967253845041398399648442340042970814415571904057667028157512971079384601724816308078631844480110201787343583073815186771790477712040051157180318804422120472007636722063989315320863580631330647116993819777750684150950416298085261478841177681677867236865666207391847046483954029213495373613490690687473081930148461830425717614569, 15341898433226638235160072029875733826956799982958107910250055958334922460202554924743144122170018355117452459472017133614642242411479849369061482860570279863692425621526056862808425135267608544855833358314071200687340442512856575278712986641573012456729402660597339609443771145347181268285050728925993518704899005416187250003304581230701444705157412790787027926810710998646191467130550713600765898234392350153965811595060656753711278308005193370936296124790772689433773414703645703910742193898471800081321469055211709339846392500706523670145259024267858368216902176489814789679472227343363035428541915118378163012031, 18715065071648040017967211297231106538139985087685358555650567057715550586464814763683688299037897182845007578571401359061213777645114414642903077003568155508465819628553747173244235936586812445440095450755154357646737087071605811984163416590278352605433362327949048243722556262979909488202442530307505819371594747936223835233586945423522256938701002370646382097846105014981763307729234675737702252155130837154876831885888669150418885088089324534892506199724486783446267336789872782137895552509353583305880144947714110009893134162185382309992604435664777436197587312317224862723813510974493087450281755452428746194446, 2282284561224858293138480447463319262474918847630148770112472703128549032592187797289965592615199709857879008271766433462032328498580340968871260189669707518557157836592424973257334362931639831072584824103123486522582531666152363874396482744561758133655406410364442174983227005501860927820871260711861008830120617056883514525798709601744088135999465598338635794275123149165498933580159945032363880613524921913023341209439657145962332213468573402863796920571812418200814817086234262280338221161622789516829363805084715652121739036183264026120868756523770196284142271849879003202190966150390061195469351716819539183797]
p_4=exCRT(c,n)
p=gmpy2.iroot(p_4,4)[0]
print(p)
#109935857933867829728985398563235455481120300859311421762540858762721955038310117609456763338082237907005937380873151279351831600225270995344096532750271070807051984097524900957809427861441436796934012393707770012556604479065826879107677002380580866325868240270494148512743861326447181476633546419262340100453

观察第二个发现e=3
低指数加密
然后我发现我的脚本跑出来好慢
搜了一下大佬的脚本

import gmpy2
# gcd(e1,e2)=1
# 存在整数r,s使得re1 + se2 = 1(贝祖定理)
ee1 = 42
ee2 = 3
ce1 =  45722651786340123946960815003059322528810481841378247280642868553607692149509126962872583037142461398806689489141741494974836882341505234255325683219092163052843461632338442529011502378931140356111756932712822516814023166068902569458299933391973504078898958921809723346229893913662577294963528318424676803942288386430172430880307619748186863890050113934573820505570928109017842647598266634344447182347849367714564686341871007505886728393751147033556889217604647355628557502208364412269944908011305064122941446516990168924709684092200183860653173856272384
ce2 =  13908468332333567158469136439932325992349696889129103935400760239319454409539725389747059213835238373047899198211128689374049729578146875309231962936554403287882999967840346216695208424582739777034261079550395918048421086843927009452479936045850799096750074359160775182238980989229190157551197830879877097703347301072427149474991803868325769967332356950863518504965486565464059770451458557744949735282131727956056279292800694203866167270268988437389945703117070604488999247750139568614939965885211276821987586882908159585863514561191905040244967655444219603287214405014887994238259270716355378069726760953320025828158
tmp =  864078778078609835167779565982540757684070450697854309005171742813414963447462554999012718960925081621571487444725528982424037419052194840720949809891134854871222612682162490991065015935449289960707882463387
n  =  15911581555796798614711625288508309704791837516232122410440958830726078821069050404012820896260071751380436992710638364294658173571101596931605797509712839622479368850251206419748090059752427303611760004621378226431226983665746837779056271530181865648115862947527212787824629516204832313026456390047768174765687040950636530480549014401279054346098030395100387004111574278813749630986724706263655166289586230453975953773791945408589484679371854113457758157492241225180907090235116325034822993748409011554673180494306003272836905082473475046277554085737627846557240367696214081276345071055578169299060706794192776825039
# assert(pow(e1,ee1,n)==ce1)
# assert(pow(e2+tmp,ee2,n)==ce2)
# c1 = m**e1 mod n
# c2 = m**e2 mod n
# (c1**r*c2**s) mod n = (m**(re1+se2)) mod n =m
# re1 + se2 = 1
for k in range(40000,45000):
    if(gmpy2.iroot(k*n+ce2,3)[0]==int(gmpy2.iroot(k*n+ce2,3)[0])):
        print(gmpy2.iroot(k*n+ce2,3)[0]-tmp)

这里不知道为什么k在【40000,45000】
猜测e2 不会很大 取从负到正的值

e2=381791429275130

再求e1
ce1比n要小很多,开42次更小 模n就没效果了
e1=ce1开42次

e1=15218928658178
flag=int(binascii.hexlify(flag),16)
q1=   127587319253436643569312142058559706815497211661083866592534217079310497260365307426095661281103710042392775453866174657404985539066741684196020137840472950102380232067786400322600902938984916355631714439668326671310160916766472897536055371474076089779472372913037040153356437528808922911484049460342088834871
q2 =  114401188227479584680884046151299704656920536168767132916589182357583461053336386996123783294932566567773695426689447410311969456458574731187512974868297092638677515283584994416382872450167046416573472658841627690987228528798356894803559278308702635288537653192098514966089168123710854679638671424978221959513
c1 =  262739975753930281690942784321252339035906196846340713237510382364557685379543498765074448825799342194332681181129770046075018122033421983227887719610112028230603166527303021036386350781414447347150383783816869784006598225583375458609586450854602862569022571672049158809874763812834044257419199631217527367046624888837755311215081173386523806086783266198390289097231168172692326653657393522561741947951887577156666663584249108899327053951891486355179939770150550995812478327735917006194574412518819299303783243886962455399783601229227718787081785391010424030509937403600351414176138124705168002288620664809270046124
c2 =  7395591129228876649030819616685821899204832684995757724924450812977470787822266387122334722132760470911599176362617225218345404468270014548817267727669872896838106451520392806497466576907063295603746660003188440170919490157250829308173310715318925771643105064882620746171266499859049038016902162599261409050907140823352990750298239508355767238575709803167676810456559665476121149766947851911064706646506705397091626648713684511780456955453552020460909638016134124590438425738826828694773960514221910109473941451471431637903182205738738109429736425025621308300895473186381826756650667842656050416299166317372707709596
assert(c1==pow(flag,e1,p*q1))
assert(c2==pow(flag,e2,p*q2))

e1与e2 都与phi不互素
最近刚好做到了而且gcd=14

import gmpy2
from libnum import *
from Crypto.Util.number import long_to_bytes
e1 = 15218928658178
p1 = 109935857933867829728985398563235455481120300859311421762540858762721955038310117609456763338082237907005937380873151279351831600225270995344096532750271070807051984097524900957809427861441436796934012393707770012556604479065826879107677002380580866325868240270494148512743861326447181476633546419262340100453
q1 = 127587319253436643569312142058559706815497211661083866592534217079310497260365307426095661281103710042392775453866174657404985539066741684196020137840472950102380232067786400322600902938984916355631714439668326671310160916766472897536055371474076089779472372913037040153356437528808922911484049460342088834871
c1 = 262739975753930281690942784321252339035906196846340713237510382364557685379543498765074448825799342194332681181129770046075018122033421983227887719610112028230603166527303021036386350781414447347150383783816869784006598225583375458609586450854602862569022571672049158809874763812834044257419199631217527367046624888837755311215081173386523806086783266198390289097231168172692326653657393522561741947951887577156666663584249108899327053951891486355179939770150550995812478327735917006194574412518819299303783243886962455399783601229227718787081785391010424030509937403600351414176138124705168002288620664809270046124
n1=p1*q1
phi1=(p1-1)*(q1-1)
g1=gmpy2.gcd(e1,phi1)
e2 = 381791429275130
p2 = 109935857933867829728985398563235455481120300859311421762540858762721955038310117609456763338082237907005937380873151279351831600225270995344096532750271070807051984097524900957809427861441436796934012393707770012556604479065826879107677002380580866325868240270494148512743861326447181476633546419262340100453
q2 = 114401188227479584680884046151299704656920536168767132916589182357583461053336386996123783294932566567773695426689447410311969456458574731187512974868297092638677515283584994416382872450167046416573472658841627690987228528798356894803559278308702635288537653192098514966089168123710854679638671424978221959513
c2 = 7395591129228876649030819616685821899204832684995757724924450812977470787822266387122334722132760470911599176362617225218345404468270014548817267727669872896838106451520392806497466576907063295603746660003188440170919490157250829308173310715318925771643105064882620746171266499859049038016902162599261409050907140823352990750298239508355767238575709803167676810456559665476121149766947851911064706646506705397091626648713684511780456955453552020460909638016134124590438425738826828694773960514221910109473941451471431637903182205738738109429736425025621308300895473186381826756650667842656050416299166317372707709596
n2=p2*q2
phi2=(p2-1)*(q2-1)
g2=gmpy2.gcd(e2,phi2)
d1=gmpy2.invert(e1//g1,phi1)
d2=gmpy2.invert(e2//g2,phi2)
m1=pow(c1,d1,n1)
m2=pow(c2,d2,n2)
m3=m1%p1
m2=m2%q2
m1=m1%q1
m=solve_crt([m1,m2,m3], [q1,q2,p1])
n=q1*q2
f=(q1-1)*(q2-1)
m=m%n
a=invmod(7,f)
m=pow(m,a,n)
print(long_to_bytes(gmpy2.iroot(m, 2)[0]).decode())
#de1ctf{9b10a98b-71bb-4bdf-a6ff-f319943de21f}

[MRCTF2020]Easy_RSA

首先求P
已知n=pq
F_n=(p-1)
(q-1)
利用sage解出2元1次方程组

P_n =  140573321395373957012384636448279482040305765285585432834059669335099444446812575211087693039996799553714745462131960513868029363430929652025195041112385722698230721990398122081003019393650803285185787040767691474849225084826866589593477257537620785909285618621633373824632523619581459332103064313427487750243365560282677420213208916817625436604684840186868658910731107573941540248335525588636715374910899570386483289737906923560147784203338967055952527115141174780728288801985061876679240202606001247172430674208763639805389941019294379786687091286525870739013373102786657782995137635 93234951137512120572797739181693

P_F_n=140573321395373957012384636448279482040305765285585432834059669335099444446812575211087693039996799553714745462131960513868029363430929652025195041112385722698230721990398122081003019393650803285185787040767691474849225084826866589593477257537620785909285618621633373824632523619581459332103064313427487750240994273639673211101275620398790186160829269355679513781852808824269030645983766681066166946235400740572104327903095710187782817 23710994930151635857933293394780142192586806292968028305922173313521186946 635709194350912242693822450297748434301924950358561859804256788098033426537956252964976682327991427626735740
var("p q")
eq1=P_n==p*q
eq2=P_F_n==P_n-p-q+1
solve([eq1,eq2],p,q)

得到p和q
从而解得P
求Q
已知n 尝试分解
就可以求出p和q
然后就是常规的rsa了

import gmpy2
from Crypto.Util.number import long_to_bytes
e = 65537
p = 479118055465195802861076643662451975441788371634793637145996217181496941123528933189555924873955626144432796811508165808623238468622989137235172879429170575533130989283494729924111842069786350352207565492494839924066840359984054733935671743878254997948119056311916492118488857415958325161799871082194782809717073
q = 103522908254080567893731908833394744488888808537035795737806298690667500329637779495333978590640235970136224577411196764442973344806294490943711807196503524248389571078345895360591904238447631800263183886834890874869994569137132568744715109230815151947999678985103201991854037190640567921343350745689008509490943
c = 40855937355228438525361161524441274634175356845950884889338630813182607485910094677909779126550263304194796000904384775495000943424070396334435810126536165332565417336797036611773382728344687175253081047586602838685027428292621557914514629024324794275772522013126464926990620140406412999485728750385876868115091735425577555027394033416643032644774339644654011686716639760512353355719065795222201167219831780961308225780478482467294410828543488412258764446494815238766185728454416691898859462532083437213793104823759147317613637881419787581920745151430394526712790608442960106537539121880514269830696341737507717448946962021
n=p*q
phi=(p-1)*(q-1)
d=gmpy2.invert(e,phi)
m=pow(c,d,n)
print(long_to_bytes(m))

[NPUCTF2020]共 模 攻 击

一个task.py和hint.py
有hint先看hint

p, q = getPrime(256), getPrime(256)
n = p * q
e1, e2 = getPrime(32), getPrime(32)
c1, c2 = pow(c, e1, n), pow(c, e2, n)
print(n)
print(e1, c1)
print(e2, c2)

共模攻击求得c

import gmpy2
from Crypto.Util.number import long_to_bytes
import  binascii
import  rsa
import math
def exgcd(m, n, x, y):
    if n == 0:
        x = 1
        y = 0
        return (m, x, y)
    a1 = b = 1
    a = b1 = 0
    c = m
    d = n
    q = int(c / d)
    r = c % d
    while r:
        c = d
        d = r
        t = a1
        a1 = a
        a = t - q * a
        t = b1
        b1 = b
        b = t - q * b
        q = int(c / d)
        r = c % d
    x = a
    y = b
    return (d, x, y)
n=6807492006219935335233722232024809784434293293172317282814978688931711423939629682224374870233587969960713638310068784415474535033780772766171320461281579
e1=2303413961 
c1=1754421169036191391717309256938035960912941109206872374826444526733030696056821731708193270151759843780894750696642659795452787547355043345348714129217723
e2=2622163991 
c2=1613454015951555289711148366977297613624544025937559371784736059448454437652633847111272619248126613500028992813732842041018588707201458398726700828844249

ans=exgcd(e1,e2,0,0)
s1=ans[1]
s2=ans[2]
m=(gmpy2.powmod(c1,s1,n)*gmpy2.powmod(c2,s2,n))%n
print(m)

然后去求hint
用sage解得m

n=107316975771284342108362954945096489708900302633734520943905283655283318
c=193840023587257596791989176867633103490509882236276250960508003697604842
R.<x>=Zmod(n)[]
e=256
f=x^e-c
f.roots()
#[(107316975771284342108362954944473175307713015963476826507029985482672209462765, 1)(95504451940277963895699457459781114596785519963407582748779563953624318630920,  1),(11812523831006378212663497485315375112114782670326938195125719701658999904789,  1),(623314401187286670257694436875298172611109072944, 1)]

from Crypto.Util.number import  long_to_bytes
a=[(107316975771284342108362954944473175307713015963476826507029985482672209462765,
  1),
 (95504451940277963895699457459781114596785519963407582748779563953624318630920,
  1),
 (11812523831006378212663497485315375112114782670326938195125719701658999904789,
  1),
 (623314401187286670257694436875298172611109072944, 1)]
s=0
for i in a:
    for j in i:
        s+=1
        if(s%2==1):
            print(long_to_bytes((j)))

那么hint为m.bit_length() < 400
去看task
感觉好像没啥用
偷看大佬的wp

from Crypto.Util.number import long_to_bytes
n=128205304743751985889679351195836799434324346996129753896234917982647254577214018524580290192396070591032007818847697193260130051396080104704981594190602854241936777324431673564677900773992273463534717009587530152480725448774018550562603894883079711995434332008363470321069097619786793617099517770260029108149
c1=96860654235275202217368130195089839608037558388884522737500611121271571335123981588807994043800468529002147570655597610639680977780779494880330669466389788497046710319213376228391138021976388925171307760030058456934898771589435836261317283743951614505136840364638706914424433566782044926111639955612412134198
c2=9566853166416448316408476072940703716510748416699965603380497338943730666656667456274146023583837768495637484138572090891246105018219222267465595710692705776272469703739932909158740030049375350999465338363044226512016686534246611049299981674236577960786526527933966681954486377462298197949323271904405241585
PR.<m> = PolynomialRing(Zmod(n))
f = m^2-(c1+c2)*m+c1*c2
x0 = f.small_roots(X=2^400)
print(x0)

已知
c1 = m^p mod n = m ^p mod pq
c2 = m^q mod n = m ^q mod p
q
由费马定理得
m^p ≡ m mod p
m^q ≡ m mod q
所以
c1 = m + ip + xpq,可整理成 c1 = m + ip
c2 = m + jq + ypq,可整理成 c2 = m + jq
所以
m2 - (c1 + c2)m + c1 * c2 = ijn ≡ 0 mod n

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: SwooleLoader7.3是一款可以用于加速Swoole框架运行的PHP扩展。由于Swoole框架使用异步IO编程方式,拥有高并发、高性能等特点,在实际应用中被广泛使用。然而,在高并发多进程场景下,使用传统的自动加载器会拖累程序性能,降低服务器响应速度。SwooleLoader7.3是专门为解决这个问题而开发的扩展。 SwooleLoader7.3的原理是通过缓存Swoole框架类库和应用程序的类库,提高Swoole框架和应用程序的加载速度和性能。在使用SwooleLoader7.3之前,首先需要安装Swoole扩展和inotify扩展。在安装完成后,只需要将SwooleLoader7.3扩展加入PHP ini配置文件,并启用即可。 SwooleLoader7.3的优点是可以显著提高Swoole框架和应用程序的性能和运行效率。在大规模并发访问的场景中,SwooleLoader7.3可以避免自动加载器带来的性能瓶颈,从而提高服务器的响应速度。此外,SwooleLoader7.3也具有较好的兼容性,可以支持大多数PHP版本和Swoole版本,适用于各种开发环境。 总之,SwooleLoader7.3是一款非常有价值的PHP扩展,可以帮助开发者提高Swoole框架和应用程序的运行效率和性能,应该得到更多开发者的关注和使用。 ### 回答2: SwooleLoader7.3是一个PHP扩展,主要用于加速Swoole框架的运行。它提供了PHP协程以及对异步IO的支持,比传统的同步阻塞IO效率更高。SwooleLoader7.3支持数据共享、协程调度、异步MySQL等功能,大大提高了Swoole框架的性能。它还提供了非常方便的API和命名空间,让开发者可以更加轻松地使用和优化Swoole框架。同时,SwooleLoader7.3还提供了高度的可配置性,可以根据具体的业务需求来进行配置,让开发者在使用Swoole框架的时候更加灵活自由。总之,SwooleLoader7.3是一个非常强大的工具,可以帮助开发者更加高效地开发出高性能的Swoole应用程序,对于提升Web应用的性能和用户体验都具有很大的作用。 ### 回答3: swooleloader7.3是一种能够集成Swoole扩展的PHP编程语言的插件,它可以帮助PHP程序员更加方便地使用Swoole框架开发高性能网络应用程序。 Swoole是一种基于PHP的高性能网络通讯框架,它的优势在于可以让PHP程序员使用事件驱动的编程方式,从而在网络通讯方面获得更好的性能表现。由于Swoole扩展本身并没有直接集成到PHP中,因此需要使用Swooleloader来帮助PHP程序更好地使用Swoole框架。 swooleloader7.3的使用相对简单,只需要直接加载Swoole扩展即可。使用之前需要确保服务器环境已经安装了Swoole扩展,并且需要在PHP中开启了Swoole的支持。一旦使用了swooleloader7.3,那么PHP程序员就可以方便地使用Swoole框架中提供的各种网络通讯特性,因此可以极大地提高Web应用程序的性能表现。 总之,swooleloader7.3是一个非常实用的PHP插件,它已经被广泛应用于各种大型Web应用程序中,为PHP程序员提供了更加高效、灵活的开发工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值