一些CTF编码脚本

首先推荐这篇文章,网上有多次转载,这是我见过日期比较早的 CTF中那些脑洞大开的编码和加密

凯撒密码

1 flag='flag{abcdef}'
2 c=''
3 n=20
4 for i in flag:
5     if 'a' <= i <='z':
6         i=chr(((ord(i)-ord('a'))+n)%26+ord('a'))
7     c+=i
8 print c

栅栏密码

 1 n= 5
 2 m = "flag{0123456789abcdef}"
 3 c=''
 4 for x in range(n):
 5     for i in range(len(m)):
 6         if((n - i + x) % n == 0):
 7             c+=m[i]
 8 print c
 9 
10 n=5
11 m=''
12 c=list(c)
13 zero=(n-len(c))%n
14 n=(len(c)+zero)/n
15 if zero != 0: 
16     for i in range(1,zero):
17         c.insert(-n*i+1,'0')
18     c.append('0')
19 for x in range(n):
20     for i in range(len(c)):
21         if((n - i + x) % n == 0):
22             m+=c[i]
23 if zero!= 0:
24     m=m[:-zero]
25 print m

 

曼彻斯特编码与解码

 1 flag = bin(int('flag{0123456789abcdef}'.encode('hex'),16))[2:]
 2 s='00'
 3 for i in range(len(flag)):
 4     if flag[i]=='1':
 5         s+='10'
 6     else:
 7         s+='01'
 8 print hex(int(s,2))[2:-1]
 9 #296969a56956696a6a9a5a555a565a595a5a5a655a665a695a6a5a955a9669566959695a6965696669696aa6
10 r=""
11 for i in range(len(s)/2):
12     if s[i*2:i*2+2] == '10':
13         r += '1'
14     else:
15         r += '0'
16 print hex(int(r,2))[2:-1].decode('hex')
17 #flag{0123456789abcdef}

差分曼彻斯特编码与解码

 1 #coding=utf-8
 2 flag = bin(int('flag{0123456789abcdef}'.encode('hex'),16))[2:]
 3 s='01' # or '10'
 4 for i in range(len(flag)):
 5     if flag[i]=='1':
 6         s+=s[-2:][::-1]
 7     else:
 8         s+=s[-2:]
 9 print hex(int(s,2))[2:-1]
10 #6565659565569a99665959555956a6a55959596aa696a69aa69959aaa6569aa9655a9aa69a95656965656669
11 r=""
12 tmp = 0
13 for i in xrange(len(s)/2):
14     c = s[i*2]
15     if c == s[i*2 - 1]:
16         r += '1'
17     else:
18         r += '0'
19 print hex(int(r,2))[2:-1].decode('hex')
20 #flag{0123456789abcdef}

 

转载于:https://www.cnblogs.com/kagari/p/10833116.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值