阿里雲活動《消失的三重密碼》?
首先,題目叫做消失的三重密碼,顧名思義,是要有提示的,實名反對樓上所有答主沒有拿到全部線索就強答問題(逃
獲得線索很簡單,只要關注阿里雲的官方微信,輸入1 2 3 就會分別出現三行提示
好了 三個提示我們得到了 一個一個來 1.拼單詞遊戲,紅色和綠色是多彩世界裡的兩極
紅綠兩極說明單詞的開頭結尾分別是紅綠或者綠紅
這裡大膽猜測,綠的放最後,紅的第一個放第一位
k e a r y o d dk ? ? ? ? ? ? d這裡我們還剩下r,y,d三個輔音字元,這三個輔音字母基本不可能並在一個音節里,所以這個單詞應該是個合成詞(不太懂這個官方的叫法,我就是指這個單詞應該包含兩個部分,是由兩個單詞合起來的)k開頭的不多,易想到key,剩下的arod,組合一下會出現doar
合在一起就是keydoard
非常棒,因為他非常像keyboard(鍵盤),我看了一下原文本中沒有b,想來是出題人只好出於無奈用d代替,因為是拼字遊戲,我們可以理解成字可以自由的取垂直線上的鏡像或者可以取自由旋轉的值,那麼d也可以勉強看作是b了
第一個問題到此結束,我們得到了線索 keyboard
2.300年前出現的加密方式,嗯,其實基本算是廢話,近代的加密方式也輪不到我們這些門外漢來破解了,除非是第一個線索給了秘鑰,然後第二個線索給了RSA,然後我們就可以decrypt了?(誤)
300年前的,我能想到的就是最基本的替換式加密,即對於26個英文字母,每一個字母都有唯一的一個映像,且26個字母的映像仍舊為26個不同的字母(定義不夠官方 還請見諒 明白就好)
嗯,鍵盤,替換式加密,大家差不多可以明白了吧
qwer-&>abcd
...vbnm-&>wxyzso on.然後就可以得到輪子哥放出的文本了
In the room there are four identical basketballs and two identical footballs.
Now if you want to put them in one line, how many solutions are there? Tips:please change the form of the number you get.The Programmers這裡除了插排法
C(2,5)+C(1,5) = 15 外,我會再想想有沒有更好的更通用的解法,想好後會補上感謝補充 @龍魂 @風Boy 的補充
直接看作是6個空位選兩個給足球就好了。。。
C(6,2) = 153. 1+1!=2隻有2進位下成立
1+1 = 1015 = 1111
正好是雙十一
嗯,這樣這個題目的解答就應該完整了
其實看著那麼多zit就知道zit肯定是the,心算了一下猜出了5個字母,但是看不出什麼規律,於是搜了一下發現有人做出來了:結果應該是C(2,5) + 5 /*考慮到足球可以連著放*/ == 15吧,那tips是幹嗎用的沒看明白,是要轉二進位嗎?In the room there are four identical basketballs and two identical footballs.
Now if you want to put them in one line, how many solutions are there? Tips:please change the form of the number you get.The Programmers放出神器:
http://www.quipqiup.com/
對於一個最基本一眼就看出來是單表的替換密碼,用上面這個東西就可以秒解了。
然後就得到輪子哥說的那一大段英文了。按尿性 1111 和 2015 之類的試幾次肯定中...
而考官期望的解法是什麼呢? 綠色的字母鏡像反轉一下, 和紅色的字母重排就能組成提示: keyboard
那麼用鍵盤加密法, 把 qwerty... 替換成 abcdef... 就能得到題目(第一重):
4 個全同籃球 2 個全同足球, 排成一行, 有幾種排法? (第二重)提示: 答案需要改變數字格式 (第三重)這個排列題可以看作 6 個全同球中挑兩個使它變成足球, 那就是 C(2, 6) = 15, 再變成二進位剛好就是答案 1111.
(另外題目有小錯, piv dgfn 應該是 igv dqfn, 那樣才能翻譯成 how many)
------------------
其實這種題一眼看就像是 26 字母替換, 而任何替換都是很容易分析出來的... 假設我們是打出生就用 dvorak 鍵盤的人, 可以這麼猜:
先看高頻詞 zit, 猜想是 the, 然後就知道 zitkt -&> there, 知道這 5 個字母后, 找最長的那個詞:
hkgukqddtkl
按照已知的替換表, 它應該是
.r..r...er.
其中包含 8 個不同字母
拿出解謎專用小工具 -- Ruby, 下載一個詞典
words = `curl http://www-01.sil.org/linguistics/wordlists/english/wordlist/wordsEn.txt`.split
搜一下匹配
words.grep(/.r..r.(.)1er./).select{|w|
w.chars.uniq.size == 8
}
得到兩個候選詞: ["programmers", "weatherstrippers"], 看來是 programmers 可能性最大.
同樣方法繼續搞, 得到
yggzwqssl -&> footballs ,
ortfzoeqs -&> identical後面就是填字遊戲了第一重密碼:鍵盤代替字母表按順序,比如qwer..=abcd..找到圖中字母對應的正確順序: In the room there are four identical basketballs and two identical footballs. Now if you want to put them in one line, how many solutions are there? Tips:please change the form of the number you get.The Programmers. 翻譯下:房間里有四個相同籃球兩個相同足球。如果你現在把他們放在同一行,有多少種排列?提示:請改變數的形式,程序猿。
第二重密碼:排列方式一共有 N(6,2)=15第三重密碼:根據提示1+1≠2,計算機二進位2=10,so,得到15=1111?雙11?有機會抽取WTF?
我男票給我的答案,過程我不懂,答案也不重要,重點是那段滿是鄙視的中文翻譯!
答案是1111,前幾天我同學還說會不會一下被人猜出來,結果剛上微博就被猜出來了,把帶顏色的字拿出來是鍵盤(至於為啥是綠色的d,因為木有b),然後按照鍵盤的順序排列字母 ,出來一段英文 ,大概意思是球的排列組合 15 種,然後轉成二進位1111。之前我還建議他加個md5讓程序猿去反解,加大難度。結果 ,他現在哭暈在廁所。沒錯,這題就是他出的。
python:
from string import maketrans
def ali_decode(letter):
t=maketrans("qwertyuiopasdfghjklzxcvbnm","abcdefghijklmnopqrstuvwxyz")
return letter.translate(t)
我的回答 - -消失的三重密碼謎底是? - 知乎用戶的回答為嘛我覺得密文有問題?
in the .... how many ...-----------
Of zit ... piv dgfn ...如果字母是一對一映射加密的話,密文中兩次出現的 "i" (zit、piv) 分別對應明文 "h"、"o"IN THE ROOM THERE ARE FOUR IDENTICAL BASKETBALLS AND TWO IDENTICAL FOOTBALLS .NOW IF YOU WANT TO PUT THEM IN ONE LINE. HOW MANY SOLUTIONS ARE THERE ?TIPS:PLEASE CHANGE THE FORM OF THE NUMBER YOU GET. THE PROGRAMMRS.
二進位:1111
那個夥伴們 闖關成功了?你們的「雙11」大禮藏在這封挑戰書里,謎底是1111
題目本身並不難,但其實謎面就隱藏了謎底,這個比較有想法。拼錯那個how many 我覺得可能是為了防暴力破解的,雖然可能也不會有人用暴力破解。
硬拼出結果剛做了一下題,其實首先一眼就能看出這多半是凱撒密碼了。
那麼破解方式也很簡單,出題用的只能是英文。先把文字保存進一個文件file.txt,統計一下單詞還有字母出現的頻率:
單詞頻率:字母頻率:$ cat file.txt |grep -Eo "[a-z]+" |sort |uniq -c |sort -bnr
3 zit2 zitkt2 qkt2 ortfzoeqs2 ngx1 zvg1 zitd1 zg1 ygxk1 ygkd1 yggzwqssl1 wqlatzwqssl1 vqfz1 utz1 soft1 qfr1 piv1 oy1 ohl1 of1 lgsxzogfl1 kgukqddtkl1 kggd1 it1 hxz1 hstqlt1 gy1 gv1 gft1 fxdwtk1 f1 eiqfut1 dgfn$ cat file.txt |tr A-Z a-z |grep -Eo "[a-z]" |sort |uniq -c |sort -bnr
22 t18 z17 g13 f12 q11 k10 o9 s9 i8 l7 d6 x5 y4 w4 v4 h3 u3 r3 n3 e1 p1 a最容易看出來的單詞是「f」,很有可能是「i「。然後出現最多的」zit「很可能是」the」,基於」t「是出現最多的字母,基本可以肯定是的了。順帶就知道「z」、「i」分別代表」t」和「h」了。
然後再拿其他高頻但字母少的單詞依次觀察,可以很快猜測出這些字母來。
對應關係如下:不需要寫什麼程序,一行shell足以破譯出明文:tzikqgvyfxndohwlsurea
ethraowfnuymipbslgdck得到結果:$ cat file.txt | tr "A-Z" "a-z" |tr "tzikqgvyfxndohwlsurea" "ethraowfnuymipbslgdck"
in the room there are
four identicalbasketballs and twoidentical footballs.now if you want to putthem in one line.phw monysolutions are there?tips:please change the formof the number youget.the programmers!不過只有「p」這個出現一次的字母沒能破譯出來。它可能是「j、p、q、x、v、z「其中一個字母,可是都不知道什麼意思? 」phw mony「 常理上應該是」how many「才對。有人知道的話請告知。
然後從譯文內容可知,4個籃球2個足球排一行,有多少種解決方法?用排列組合算是15了。
接著提示是要轉換數字格式,程序員!非常明顯是要我們轉二進位了,那就是1111。
如是,三次解密,答案應該是1111。
PS:題目中的紅色跟綠色字母意義不明,有可能干擾,也可能是另有玄機?加上上面的奇怪的單詞、還有題目相對太過簡單、答案「1111」也太容易讓人瞎猜中,讓我不禁有點疑神疑鬼:會否其實到時候輸入「1111」得到是一個小紅包,但是其實這才是第一重,題目還包含其他線索可以繼續做兩重解密,得到的數字才是一個大紅包? 呵呵~先休息,明天再考慮一下。:)能看出是單字母替換加密,之後採用英語字母的出現頻率分析,很容易得出至少一半字母的對應關係。
例如原文的(字母--大寫標識,出現次數):[("T", 22), ("Z", 18), ("G", 17), ("F", 13), ("Q", 12), ("K", 11), ("O", 10), ("S", 9), ("I", 9), ("L", 8), ("D", 7), ("X", 6), ("Y", 5), ("W", 4), ("H", 4), ("V", 4), ("N", 3), ("U", 3), ("E", 3), ("R", 3), ("P", 1), ("A", 1)]
關於字母出現頻率隨便搜到的數據(http://blog.163.com/abo_liu2010@126/blog/static/46020937200982710248324/):[("e", "11.42%"), ("a", "8.56%"), ("i", "7.94%"), ("r", "7.51%"), ("t", "7.46%"), ("o", "7.12%"), ("n", "6.41%"), ("s", "5.55%"), ("l", "5.52%"), ("c", "4.74%"), ("u", "3.66%"), ("p", "3.27%"), ("m", "3.22%"), ("d", "3.13%"), ("h", "2.76%"), ("g", "2.30%"), ("b", "2.12%"), ("y", "2.00%"), ("f", "1.47%"), ("v", "1.07%"), ("w", "0.94%"), ("k", "0.84%"), ("x", "0.35%"), ("z", "0.24%"), ("q", "0.23%"), ("j", "0.15%")]很容易把T和e對應起來,而ZIT的出現概率與t、h、e接近,容易把兩者聯想到一起。再比如,出現頻率在前的G、F、Q、K、O是母音字母的可能性較大(實際上,他們是o、n(英文中頻率次於o)、a、i)後續的分析就容易多了。比如倆字母單次湊出一個字母后,另一個挨個試過去都行。
c(1 5)+ c(2 5).. 鍵盤順序是怎麼想到的。。不知道有沒有需要複習下高中數學排列組合_(:з」∠)_
從n個不同元素中,任取m(m≤n)個元素並成一組,叫做從n個不同元素中取出m個元素的一個組合;從n個不同元素中取出m(m≤n)個元素的所有組合的個數,叫做從n個不同元素中取出m個元素的組合數.用符號
c(n,m) 表示.
c(n,m)=p(n,m)/m!=n!/((n-m)!*m!);c(n,m)=c(n,n-m);
6個球,2個足球,不記順序,c(6,2)=c(6,4)=15
( ̄ ii  ̄;) 吸溜( ̄" ̄;)
1024元,是阿里要收購某網站了嗎(*/?\*)
推薦閱讀:
※我爸在4月27號到30號之間沒有收到任何信息,農行卡內錢在這段期間被轉走13萬多!我該怎麼做?
※密碼生產器的意義何在?
※怎樣防止第三方軟體竊取用戶密碼?
※QQ郵箱為什麼默認不顯示未知郵件的圖片?顯示圖片對郵箱安全有什麼隱患?
※怎樣設計密碼既可以在各大網站通用卻各不相同,又不易忘記?