-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy path12.进制及ascii转换.py
29 lines (23 loc) · 1.03 KB
/
12.进制及ascii转换.py
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
import base64
import re
def shiZhuanAscii(ls): #十进制列表转ascii
flag=''
for i in ls:
flag=flag+chr(int(i))
return flag
def erZhuanShi(ls): #二进制列表转十进制列表
for i in range(len(ls)):
ls[i]=int(ls[i],2)
return ls
def splitS(s,n): #把字符s每n个分到一个列表元素
ls=re.findall('.{'+str(n)+'}', s)
return ls
#示例:
s="011100100110000101110010001011010111000001100001011100110111001101110111011001000011101000110000011000010110001100110001011001100110010100110110011000100011011100110111011000100110010100110101011001000110001001100101"
ls=splitS(s,8) #['1100110', '1101100', '1100001', '1100111', '1111011', '1010111', '0110000', '1010111', '0101010', '1100110', '1110101', '1101110', '1101110', '1111001', '1111101']
ls=erZhuanShi(ls) #[102, 108, 97, 103, 123, 87, 48, 87, 42, 102, 117, 110, 110, 121, 125]
ls=shiZhuanAscii(ls) #flag{W0W*funny}
print(ls)
# s="52 14 51 44 14 55 41 43 53 14 42 52 15 42 14 55 53 13 15 43 53 13 21 42 45 54 22 12 33"
# ls=s.split(" ")
# print(shiZhuanAscii(ls))