1. 程式人生 > >JarvisOJ Basic 愛吃培根的出題人

JarvisOJ Basic 愛吃培根的出題人

for 然而 ogl pairs pre 文字 pct 不知道 icc

聽說你也喜歡吃培根?那我們一起來欣賞一段培根的介紹吧:

bacoN is one of aMerICa‘S sWEethEartS. it‘s A dARlinG, SuCCulEnt fOoD tHAt PaIRs FlawLE

什麽,不知道要幹什麽?上面這段巨醜無比的文字,為什麽會有大小寫呢?你能發現其中的玄機嗎?

提交格式:PCTF{你發現的玄機}

剛看到這道題時,覺得應該是數大寫字母中間有多少個小寫字母,進而對應ascii碼表,然而我還是太年輕啊,完全不知道有培根密碼這麽個東西

試一試,把大寫字母換成‘B’,小寫字母換成‘A’,就得到了flag

吐槽一句:Google出來的培根密碼解碼器大多是錯的,還要自己寫qaq

dicc = {AAAAA:a,AAAAB:b,AAABA:c,AAABB:d,AABAA:e,AABAB:f,
        AABBA:g,AABBB:h,ABAAA:i/j,ABAAB:k,ABABA:l,ABABB:m,
        ABBAA:n,ABBAB:o,ABBBA:p,ABBBB:q,BAAAA:r,BAAAB:s,
        BAABA:t,BAABB:u/v,BABAA:w,BABAB:
x,BABBA:y,BABBB:z} init = "bacoN is one of aMerICa‘S sWEethEartS. it‘s A dARlinG, SuCCulEnt fOoD tHAt PaIRs FlawLE" init = init.replace( ,‘‘).replace(.,‘‘).replace(,,‘‘).replace("",‘‘) l = len(init) assert l%5 == 0 ans1=‘‘ ans2=‘‘ ans3 = [] ans4 = [] for i in init: if i.isupper(): ans1
+= A ans2 += B else: ans1 += B ans2 += A for i in range(l//5): ans3 .append(ans1[i*5:i*5+5]) ans4 .append(ans2[i*5:i*5+5]) for i in range(len(ans3)): ans3[i] = dicc[ans3[i]] for i in range(len(ans4)): ans4[i] = dicc[ans4[i]] print(‘‘.join(ans3)) print(‘‘.join(ans4))

JarvisOJ Basic 愛吃培根的出題人