越南CTF的crypto 100

自己做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编程不好吗。。。当然那样做我也不一定会。。。


版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/lightspeedsmallson/p/4785798.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值