目录
进制转换
各种进制的数混在一块,B:二进制;O:八进制;D:十进制;X:十六进制。
可以单独一个一个解,但太麻烦了,写代码吧:
s=["d87","x65","x6c","x63","o157","d109","o145","b100000","d116","b1101111","o40","x6b","b1100101","b1101100","o141","d105","x62","d101","b1101001","d46","o40","d71","x69","d118","x65","x20","b1111001","o157","b1110101","d32","o141","d32","d102","o154","x61","x67","b100000","o141","d115","b100000","b1100001","d32","x67","o151","x66","d116","b101110","b100000","d32","d102","d108","d97","o147","d123","x31","b1100101","b110100","d98","d102","b111000","d49","b1100001","d54","b110011","x39","o64","o144","o145","d53","x61","b1100010","b1100011","o60","d48","o65","b1100001","x63","b110110","d101","o63","b111001","d97","d51","o70","d55","b1100010","d125","x20","b101110","x20","b1001000","d97","d118","o145","x20","d97","o40","d103","d111","d111","x64","d32","o164","b1101001","x6d","o145","x7e"]
c = ''
for i in s:
if i[0] == 'b':
c = str(int(i[1:],2))
print(chr(int(c)),end='')
elif i[0] == 'o':
c = str(int(i[1:],8))
print(chr(int(c)),end='')
elif i[0] == 'd':
c = str(int(i[1:]))
print(chr(int(c)),end='')
elif i[0] == 'x':
c = str(int(i[1:],16))
print(chr(int(c)),end='')
affine
看题知仿射加密,给了加密函数,就能直接解了:
import gmpy2
s = 'szzyfimhyzd'
c = ''
d = gmpy2.invert(17,26)
for i in s:
c += chr(d * ((ord(i)-ord('a')) + 8) % 26 + ord('a'))
print('flag{'+c+'}')
来自宇宙的信号
银河字母加密,对照表即可得到flag:
一段新闻
隐藏字符加密+核心价值观编码,
Math&English
全部计算出来得到结果:21 33 1 22 3 44 54 5 1 35 54 3 35 41 52 13,观察所有的结果,出现的数字都在1-5,题目提示还与英语有关,想到元音字母恰好5个,去搜了一下,发现存在元音密码,学习。
元音字母a、e、i、o、u,分别对应1-5,在a-e中间,有b、c、d三个字母,则b、c、d分别代表11、12、13。同理,在e-i中间,有f、g、h三个字母,则f、g、h分别代表21、22、23,以此类推,元音密码表:
可以对照表一个一个看,也可以利用脚本:
dict = {1: 'A', 11: 'B', 12: 'C', 13: 'D', 2: 'E', 21: 'F', 22: 'G', 23: 'H', 3: 'I', 31: 'J', 32: 'K', 33: 'L', 34: 'M', 35: 'N', 4: 'O', 41: 'P', 42: 'Q', 43: 'R', 44: 'S', 45: 'T', 5: 'U', 51: 'V', 52: 'W', 53: 'X', 54: 'Y', 55: 'Z'}
c = [21,33,1,22,3,44,54,5,1,35,54,3,35,41,52,13]
flag = ''
for i in range(len(c)):
flag += dict[c[i]]
print(flag)