#step1:对照ascii表格,经查阅可得83-13=70=f,121-13=118=l,...,经此将所有字符减13位输出flag
a=[83,121,110,116,71,115,121,110,116,136,135,120,135,108,110,126,115,112,63,61,63,62,108,67,63,69,108,76,76,76,76,138,90,113,66,71,112,110,66,62,62,67,112,112,66,111,112,67,113,63,110,114,69,66,65,110,111,111,113,68,61,63,112,69,68,68,68]
flag=""
for i in a:
flag+=chr(i-13)
print(flag)
#Flag:flag{zkz_aqfc2021_628_????}Md5:ca5116cc5bc6d2ae854abbd702c8777d
#step2:已知flag有四个未知位,采用暴力枚举,破解其余几位
'''import hashlib
flag_md5 = 'ca5116cc5bc6d2ae854abbd702c8777d'
strs = r"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!#$%&()*+,-./:;<=>?@[\]^_`{|}~ "
for a in strs:
for b in strs:
for c in strs:
for d in strs:
flag = f'flag{{zkz_aqfc2021_628_{a}{b}{c}{d}}}'
if hashlib.md5(flag.encode()).hexdigest() == flag_md5:
#将flag转换为字节序列,计算md5值,该值以十六进制字符串表示
print(f"Found: {flag}")
exit(0)
print("Not found")'''
#四重循环暴力枚举,对每一位a,b,c,d遍历strs中的所有字符