做过CTF的都应该知道,在密码学部分栅栏密码是一种常见的考察形式。在每次做这种题目时,我都会根据答案格式来判断栏数,有时因为答案格式的不确定,我们需要把所有的栏数都考虑进去,这时候就需要一个脚本来实现之。
附上栅栏密码密码的python脚本(环境python2.7):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#-*-coding:utf-*-
def factor(num):
arr=[]
for i in range(2,num–1):
if num%i==0:
arr.append(i)
else:
continue
return arr
#这个函数主要是用于统计字符串个数的因子,即可能存在的栏数
#str=’ggQ@gQ1fqh0ohtjpt_sw{gfhgs#}’
str=raw_input(‘input a string:’)
arr=factor(len(str))
#arr数组中存放所有可能的栏数
for i in range(len(arr)):
count=0
final=”
for j in range(len(str)–1):
final+=str[count]
count+=arr[i]
if count==len(str)–1:
final+=‘}’
#当计算到最后一个字符时,由于其特殊位置,我们需要手动添加
else:
count=count%27
print arr[i],‘:’,final
|
这是一篇受密码保护的文章,您需要提供访问密码: 密码: 相关推荐: 逆向破解的入门题目我选取了两条实验吧里的逆向题目,题目不是很难,对于刚刚入门逆向的人来说,我觉得十分有用,由于自身逆向水平有限,有很多地方自己也是一知半解,不多说,开始我的表演~ …
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
喜欢就支持一下吧
请登录后发表评论
注册