您的位置:首页 > 其它

越南CTF的crypto 100

2015-08-03 11:00 344 查看
自己做CTF还是没有经验,本来以为crypto更多应该是python编程的,结果这个100的题目是Do you love Arithmetic?

打开文件来看内容是

# charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789{}"

# len(cipher) = 50

0.767613654951

0.5474434438

0.0141530116256

0.905785091354

0.984599892983

0.108635603812

0.140881010733

0.048862585782

0.0314901531258

0.234154054307

然后就是没有思路了。。。它题意应该是字符集是给定的那些,然后密文的长度是50,之后给了10个小数。不知道要干嘛。最后是曹老师脑洞大开想出解法。

现在我通过解法来倒退一下这题该怎么想,但也只能是非得按照出题者的脑洞来想吧。

字符集是64个,给了10个小数。

第一步:要通过这10个小数在字符集中选择哪些字符

通过小数怎么选择呢,又不是整数或是数组下标那般,就得想到因为字符集是64个,把小数按照64进制转10进制的思想,每一个小数乘以64取其整数,这样就得到一个选择了,然后因为密文的长度是50,10个小数,所以这时乘以5次64就好了,这时会惊奇地发现这几个整数对应的正是White,说明思路对了。

然后对第二个小数也这么做,对接下来的小数都这么做了之后发现,结果并不理想。得到的并不是想象中的WhiteHat{FLAG}这种形式,在第二个小数乘完之后,取完整数发现不是hat,而是一个移位的hat字符,又得想到可能要一个一个移位,第二个小数移一位,第三个移两位。。。第十个小数要移九位,这样。

得到了一个可喜的结果WhiteHat{3927ff16cee6714aa24e5c68ac7ab6b53109e187}

话说以后真不希望有这种脑洞题了。。。乖乖地python编程不好吗。。。当然那样做我也不一定会。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: