题目描述:被小鱼一连将了两军,你心里更加不服气了。两个人一起继续往前走, 一路上杂耍卖艺的很多,但是你俩毫无兴趣,直直的就冲着下一个谜题的地方去了。 到了一看,这个谜面看起来就已经有点像答案了样子了,旁边还画着一张画,是一副农家小院的 图画,上面画着一个农妇在栅栏里面喂5只小鸡,你嘿嘿一笑对着小鱼说这次可是我先找到答案了。
附件内容为:ccehgyaefnpeoobe{lcirg}epriec_ora_g
1. 背景知识:栅栏密码,就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。比如 123456这句话加密,N=3,那么则可以写成下面两组
135
246
然后将两组字符串拼接起来就是密文了:135246。知道了N,可以很容易逆向出原文
2. 尝试进行解题:根据题目描述,N=5
那我们将加密后的密文分成7段,每段5个字符:
ccehg
yaefn
peoob
e{lci
rg}ep
riec_
ora_g
还原后为cyperrocae{gireeol}eahfocec_gnbip_g。这个结果是错误的!!!
那究竟是哪里出了问题呢?查找资料,发现栅栏算法中还有一种W型
3. W型栅栏算法:扩展变种W型,采用先把明文类似"W"形状进行排列,然后再按栏目顺序1-N,取每一栏的所有字符值,组成加密后密文。
比如字符串“123456789”,采用栏目数为3的时,明文将采用如下排列:
1---5---9
-2-4-6-8-
--3----7--
取每一栏所有字符串,组成加密后密文:“159246837”。
4. 根据W型栅栏算法进行解密
根据密文ccehgyaefnpeoobe{lcirg}epriec_ora_g复原出W型栅栏为(N=5):
c-------c-------e--------h-------g
-y-----a-e-----f-n-----p-e-----o-o
--b---e---{---l---c----i----r---g---}
---e-p-----r-i-----e-c------_-o
----r-------a--------_--------g
那么原文为cyberpeace{railfence_cipher_gogogo}
如果觉得手动太麻烦,也可以试着用在线工具:栅栏密码_栅栏密码在线加密解密【W型】-ME2在线工具
总结:这里考察的是W型栅栏加解密算法。算法不难,知道就能解出来,不知道的话就难了