11月6日,阿里云发布了号称是今年双11最难拿的红包。

乍一看这封挑战书,英文字母杂乱无章,让人颇摸不着头脑。这是什么鬼文字?这样一大坨黏在一起的奇怪文字,估计一般人看两遍就举手投降了。
据阿里云透露,通过精心设计,这封挑战书有三重密码限制,最关键的解题线索甚至能追溯到三百年前之远。用户需要像福尔摩斯般抽丝剥茧,捕捉字母间的暗示,破除三重密码,才能揭开背后的最终奥秘。
妹子们看到问题后,纷纷@自己的男朋友,这一个@,让苦逼男友苦熬到凌晨六点多来解谜,简直比加班还残酷!
然而,网友们的智慧是无穷的。谜题发布不到一天的时间,知乎上面的大神们就用了n种方式解出了这道题……
废话不多说,给大家搬运几个精彩的解法。
普通人的解法
作者:匿名用户
你们的「双11」大礼藏在这封挑战书里,谜底是1111
题目本身并不难,但其实谜面就隐藏了谜底,这个比较有想法。
拼错那个how many 我觉得可能是为了防*力暴**破解的,虽然可能也不会有人用*力暴**破解。

硬拼出结果
程序猿的解法(逻辑狂版)

作者:曹盛泽
首先,题目叫做消失的三重密码,顾名思义,是要有提示的,实名反对楼上所有答主没有拿到全部线索就强答问题。
获得线索很简单,只要关注阿里云的官方微信,输入1 2 3 就会分别出现三行提示

三个提示我们得到了,接下来,我们一个一个来:
1.拼单词游戏,红色和绿色是多彩世界里的两极
红绿两极说明单词的开头结尾分别是红绿或者绿红
这里大胆猜测,绿的放最后,红的第一个放第一位
k e a r y o d d
k ? ? ? ? ? ? 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->wxyz
so 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 外,我会再想想有没有更好的更通用的解法,想好后会补上
3. 1+1!=2只有2进制下成立
1+1 = 10
15 = 1111
正好是双十一
嗯,这样这个题目的解答就应该完整了。
程序猿的解法(代码控版)
作者:Zete
按尿性 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
后面就是填字游戏了……
侦探的解谜方式

作者:柳越
刚做了一下题,其实首先一眼就能看出这多半是凯撒密码了。
那么破解方式也很简单,出题用的只能是英文。先把文字保存进一个文件file.txt,统计一下单词还有字母出现的频率:
单词频率:
$ cat file.txt |grep -Eo "[a-z]+" |sort |uniq -c |sort -bnr
3 zit
2 zitkt
2 qkt
2 ortfzoeqs
2 ngx
1 zvg
1 zitd
1 zg
1 ygxk
1 ygkd
1 yggzwqssl
1 wqlatzwqssl
1 vqfz
1 utz
1 soft
1 qfr
1 piv
1 oy
1 ohl
1 of
1 lgsxzogfl
1 kgukqddtkl
1 kggd
1 it
1 hxz
1 hstqlt
1 gy
1 gv
1 gft
1 fxdwtk
1 f
1 eiqfut
1 dgfn
字母频率:
$ cat file.txt |tr A-Z a-z |grep -Eo "[a-z]" |sort |uniq -c |sort -bnr
22 t
18 z
17 g
13 f
12 q
11 k
10 o
9 s
9 i
8 l
7 d
6 x
5 y
4 w
4 v
4 h
3 u
3 r
3 n
3 e
1 p
1 a
最容易看出来的单词是“f”,很有可能是“i“。然后出现最多的”zit“很可能是”the”,基于”t“是出现最多的字母,基本可以肯定是的了。顺带就知道“z”、“i”分别代表”t”和“h”了。
然后再拿其他高频但字母少的单词依次观察,可以很快猜测出这些字母来。
对应关系如下:
tzikqgvyfxndohwlsurea
ethraowfnuymipbslgdck
不需要写什么程序,一行shell足以破译出明文:
$ cat file.txt | tr 'A-Z' 'a-z' |tr 'tzikqgvyfxndohwlsurea' 'ethraowfnuymipbslgdck'
得到结果:
in the room there are
four identical
basketballs and two
identical footballs.
now if you want to put
them in one line.phw mony
solutions are there?
tips:please change the form
of the number you
get.the programmers!
不过只有“p”这个出现一次的字母没能破译出来。它可能是“j、p、q、x、v、z“其中一个字母,可是都不知道什么意思? ”phw mony“ 常理上应该是”how many“才对。有人知道的话请告知。
然后从译文内容可知,4个篮球2个足球排一行,有多少种解决方法?用排列算是15了。
接着提示是要转换数字格式,程序员!非常明显是要我们转二进制了,那就是1111。
如是,三次解密,答案应该是1111。
最后,万万没想到,这道谜题竟然把轮子哥都勾出来了……

这已经不是阿里云第一次抛出密码游戏了。在一个月前的云栖大会,阿里云就曾用一张GB2312的海报炒了一把解码热,大受欢迎后,阿里云再接再厉,开发出了这份升级版谜题,看来是要在自己特色鲜明的Geek路上走到黑了。
11月9日10点,这封被称为《消失的三重密码》的挑战书就会在阿里云双11主会场正式上线,解码达人们可以在活动页面输入自己破解出的谜底,验证答案是否正确。11月10日24点前,回答正确的用户就能参与抽奖活动,获得价值最高1024元的阿里云双11额外红包。
文中涉及解谜答案来源:知乎
首席品牌官
创业|创意|创新
聚焦企业营销转型,助力品牌价值提升。
分享最新、最鲜、最活的企业案例和品牌思想。
投稿、寻求报道、内容合作,请联系QQ:45973714
