hint2

本文介绍了SQL执行计划中几种hint的使用方法,包括push_subq、merge/no_merge、push_pred/no_push_pred等,通过调整这些hint可以改变子查询的执行顺序、连接方式,从而优化查询效率。
5、 push_subq
这个hint的作用是将nonmerged子查询的执行顺序提前(一般来说,nonmerged子查询的执行顺序比较靠后)。且看下面两个语句执行计划的差别:
由于子查询返回的结果集非常小,所以先和test1进行连接更合理。
6、 merge/no_merge
这两个hint和另外两个hint push_pred/no_ push_pred应用场景很接近,都是用来控制和view(包括视图和子查询)的连接行为。见下面两个语句的执行计划:
前一个先生成子查询结果集,再和t1进行关联,后一个则直接进行关联,也就是连接的时机有所不同。
7、 push_pred/no_ push_pred
push_pred是把连接谓词push到view里,见下面语句的执行计划:
猜测:push_pred会导致表连接一定是走nested loop的。
8、 use_concat/ no_expand
这两个hint比较容易理解,use_concat就是将含有or操作符的查询转换成多块进行查询,然后做个concatenation。no_expand则与use_concat相对。
9、 merge_aj/hash_aj/nl_aj/merge_sj /hash_sj/ nl_sj
这几个是undocumented hint,其中后缀aj表示anti join,主要用于not exists和not in;后缀sj表示semi join,主要用于exists和in。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8367589/viewspace-730121/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8367589/viewspace-730121/

这段脚本把 flag 拆成两半并分别加密 from Crypto.Util.number import * import random 原始 flag flag = b'flag{???????????????????}' length = len(flag) 把 flag 分成前后两半,分别转换为整数 m1, m2 m1 = bytes_to_long(flag[:length//2]) m2 = bytes_to_long(flag[length//2:]) ------------------------- par1: 构造第1类模 n1 并加密 m ------------------------- def par1(m): lst = [] 选取 3 个不同的大素数(每个 512 bit) while len(lst) < 3: prime = getPrime(512) if prime not in lst: lst.append(prime) print(prime) n1 = ∏ p_i^{t_i},其中每个素因子 p_i 被随机提升到 2到7 的小幂 n1 = 1 for prime in lst: tmp = random.randint(2, 7) 指数 tmp 在 2到7 之间 print(tmp) n1 *= prime ** tmp e = 65537 在模 n1 下对 m 做 RSA 加密 c1 = pow(m, e, n1) 输出素因子列表、模 n1、密文 c1 print(f"list:{lst}") print(f"n1={n1}") print(f"c1={c1}") ------------------------- par2: 构造第2类模 n2 并加密 m,给出多个 hint ------------------------- def par2(m): 随机选三个不同的大素数 p2,q2,r2(每个 512 bit),并把它们相乘得到 n2 while True: p2 = getPrime(512) q2 = getPrime(512) r2 = getPrime(512) if p2 != q2 and p2 != r2 and q2 != r2: break n2 = p2 * q2 * r2 hint1 = pow(m, p2 * q2, n2) hint2 = pow(m, r2, n2) 怎么用好 hint1 和 hint2 呢?试一试 Fermat 吧! hint3 = p2 + q2 hint3 很关键 —— 想想如果你知道 p+q 和 p*q,就能做什么? e = 65537 c2 = pow(m, e, n2) print(f"n2={n2}") print(f"hint1={hint1}") print(f"hint2={hint2}") print(f"hint3={hint3}") print(f"c2={c2}") 分别运行两部分,对 flag 的前半段/后半段加密并输出相关提示 par1(m1) par2(m2) ''' list:[8477643094111283590583082266686584577185935117516882965276775894970480047703089419434737653896662067140380478042001964249802246254766775288215827674566239, 7910991244809724334133464066916251012653855854025088993280923310153569870514093484293150987057836939645880428872351249598065661847436809250099607617398229, 12868663117540247120940164330605349884925779832327002530579867223566756253418944553917676755694242046142851695033487706750006566539584075228562544644953317] n1=1103351600126529748374237534378639752005563260397057273760573608668234841858898339963615180586483636658319719258259564340229731088477043006707066258091746453519875771328756343070392346553837475869985292233339882321767365588480914243055530194543710833400735694644740966837509139443272712871728933520755003149497543272631963356726446399042360341133139923381402765176034620742095462597690819317740258280338778466308360122325510768573457366480478480385099879072314101166576014811788437611871531848011762293407180575205681864374034973560073644731757180275405672624629974899658185645498677923049149478738083257882839079796420483489134608949730373829870700049152830490730902518823469250714236113622490232617166274965015245948264281265453208875232918994116540222173029738472689551464384951129495828658025526216028826258099588572669439254177489891457890498930044291769038333452721765661715836795838845421437984152253836745540547878024331492328801233425013069672422548913381714868180440419922587534373534388179645778998201569812711853469607955639409976100938326204393436455902117700715705355730254907473694496862186927081288536664564066273905636691443629865742113665395817897790346568115147261785693069547062993147965228097215778787698574672103567611954541526351385121096946876318405181900957517179318858167322380305506577864659070587276190351263272904670121000123739762817165611376508091511049581310489960967300251226150505529874043827860587179066433478573304632672443028389332137578559069790875583860034559992961597964011009181097461053565357444468759142467793785272517357594961007684369171923169825343428400994582000709315829746271356743493827706669902956302087422710335869361908872578360718630332916867987882367454381486160119341248986730614715669587555561672656107579415221691270769054441036888212622679174466809685017295395823904506545225068526453243179279430769878809345179954207934650512040934969514434321887565917951423932360150276928683390148666338790317001765138293050858448249492058987889761085236104153306884365020403974305552987123976314900738336243171779096705121428628914344115125836293982077268043357822313817090167616525512714228298048543723340688062975654817272989686281447834032081689520522343318726816659742944874587243087717935463623631288732784108299093601104113561688659145661286269339180833210463 c1=1091994761217634826072124019708574984391652131019528859451478177360336520455071879664626056517127684886792263267184750289726966173475531785135908239241367011964947254146686336678625127107000203921535502636024125382397949549706019108806905113568387688784083651867765356465676713044867529224095280990952281722377729904633765755308727317586804384907594623294542255582608130775388385053656500091188492219892541287152759373311871679053567569991598739628072091647402994694057021522875429987401797108991466209720726320411739418901734326490258573985380323870664455719118307333460877640654186421881374126846465164012283741829305792336376443671697322944983680753186871994926812712407530175535547953488409667363778877011722921746615125168842335755090712330314248078688305813574126414154357295682111730319771541764882123530538798904329448342477283010679916534388272354852606444335501019923314748714020060783702757991765107811664795881473290112012642711848840732656792842975595985262637352884148989392358729413049666423809444629233355604344713121576947744271550672311509709353155584615401385981281541568915650140285513857950097872392262841978506457072907666348887936981254691271750737368646952613446340505887570613771043863966115924851279285010321193299940403084752305457659188900451883509679442577291500194294702408740417770241347854055121038455584689346661759142226424655750649030196509606345959868857460928822458178193914427975718432613693148519385509070885413086890691471063639321214058351800789483569828355240522324245612035847073723555128381268497293297681153943700076717509367055194706714770699658667364019792069384855913700111098207862666478388154325649690787295929427544059466206456378068191323286585251490682952650730101051661446454500997013269750318207079005140046631065420740924251847948208391204635801689730778074655515676216581230345037704163062457051532737078339281175699645868527505281984564077081473213204937490995858702477009964928872064904754834804222961572810639265783286770899262602346777948115933216112376126550352514674411338374863486761612733848198090788549337632188615953986569772932102409611086086895003705261003974939487286850347660140334361903821934552381535024019082394626749532280515222512480387681995937963724398131252527927016338174692268363933916957519992512787514236065140642709723084266949 n2=1069018081462192233874980694931144545150390355151142000407896565228521856087497130221328822828336193888433906258622424173888905902703892967253752403237818439004204769185744957222426788163474091322195131517000927031632213563726678357776820914860304114493023487392954636569155416533134778017635963554249754152905136768251720862406591818283210776943594065154793598910172412634428403766286774221252340847853800584819732893065160890727141088203583945705491817754798199 hint1=495128350277196206878301144662871873237030348510695923954264742873861239639964327065778936381957512315649691671343380037835210964239285388639258116089512827565613815144843995253866231195560373946746849139176701974882655518646303907103018798645711804858249793838527221003421990186067508970406658504653011309012705975088331579176215562874130854040538446696646570783420605205142219423250083326857924937357413604293802370900521919578742651150371880416910794941782372 hint2=30328561797365977072611520167046226865857127358764834983211668172910299946455309984910564878419440651867811045905957544019080032899770755776597512870488988655573901143704158135658656276142062054235425241921334990614594054774876139797881802290465401101513930547809082303438739954539239681192173563314964619128522116071538744700209974655230351192503911493028021717763873423132332205605117704777006410273001461242351682504368760936763922017247768057874236213463076 hint3=20884722618082876001516601155402590958389763080024067634953470674302186115943562475648388511118550021010685094074280890845364756164094187193286427464829840 c2=548415661734126053738347374438337003873176731288953351164055019598761821990636552806558989407452529293973596759395078164177029251755832478675308995116633955485067347066419466003081030015784908106772410713523387155248930421498438336128348929737424937920603679054765413736671822930257854740643178209639013528748572597042833138551717910328899462934527011212318128877188460373648545379405946354668400634037669394938860103705689139981117990256660685216959315741336968 ''' 给我解决这道密码学的题,给我解密代码
10-08
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值