##解题思路
看题目描述就是得爆破,比如Q能变成Qq9,Z能变成Zz2,每一种可能列举,最后可能得出的flag为一串可读字符
但是我不会脚本,所以用的笨方法,尝试base64,每4个字符为一组进行手工,发现Aman为作者的名称,后面夸它帅
不过说完了笨方法,也应该说说好方法了,那就是写脚本爆破,我刚好python环境坏了,我就不装了
这是大佬的帖子↓
import base64
# 密文
m = 'QWIHBLGZZXJSXZNVBZW='
# 解密映射字典
d = {
'Q': ['Q', 'q', '9'], 'W': ['W', 'w'], 'I': ['I', 'i', '1'],
'H': ['H', 'h'], 'B': ['B', 'b', '8'], 'L': ['L', 'l', '1'],
'G': ['G', 'g', '9'], 'Z': ['Z', 'z', '2'], 'X': ['X', 'x'],
'J': ['J', 'j'], 'S': ['S', 's', '5'], 'N': ['N', 'n'],
'V': ['V', 'v'],'=':['=']
}
# 用于存储有效的base64解码结果
v = []
# 递归函数,尝试递归所有可能性并base64解码
def f(i, c):
# 当前索引超出密文长度,尝试解码
if i == len(m):
try: # 尝试base64解码
b = base64.b64decode(c)
s = b.decode('utf-8')
#解码成功,则记录结果
if s.isprintable():
v.append(s)
except: # 解码失败,忽略这个组合
pass
return
# 获取当前密文字符对应的所有可能字符
p = m[i]
r = d[p]
# 遍历可能的字符,并递归处理
for a in r:
f(i + 1, c + a)
# 递归解码
f(0, '')
# 打印结果
print("结果:")
for e in v:
print(e)