IDF-CTF-牛刀小试-聪明的小羊

本文介绍了如何解决一个涉及栅栏密码的IDF CTF挑战。通过分析字符串长度和空格,作者推断出可能的栏数为5或17,并成功使用17栏解密得到答案wctf{C01umnar}。文章讨论了通常解密过程中对空格的处理,并提供了C++实现解密过程的代码片段。
摘要由CSDN通过智能技术生成

题目:
一只小羊跳过了栅栏,两只小羊跳过了栅栏,一坨小羊跳过了栅栏…

tn c0afsiwal kes,hwit1r g,npt ttessfu}ua u hmqik e {m, n huiouosarwCniibecesnren.

分析:
看到栅栏。。。栅栏。。。栅栏。。。,所以想到用到的是栅栏密码。百度一下栅栏密码,在百科里面了解到一般是二栏栅栏,很显然这里不是。那么就是多栏栅栏了,那么到底是多少栏呢?
一般来说,解密过程是先把空格去掉的,然后再按固定分组来还原。我发现删去所有空格之后字符串长度为71,这是一个素数,不可以分解;再仔细看一下字符串,发现有些字符之间是有两个空格的,所以我就想空格是不可以忽略的,那么此时的字符串是85。85=17*5,那么我就可以猜想这里有两种情况,情况一:5个字符一栏;情况二:17个字符一栏。
我就先挑情况二来实现下(人比较懒,不想分那么多组)。
分了5组,分别如下:
1)tn c0afsiwal kes,
2)hwit1r g,npt tt
3)essfu}ua u hmqik
4) e {m, n huiouos
5)arwCniibecesnren.
然后从上到下合并起来就是:
the anwser is wctf{C01umnar},if u is a big new,u can help us think more question,tks.
好吧,这就是把密码还原了。
所以答案就是wctf{C01umnar}
试一下5个一组的情况吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值