word = {}
string = '636A56355279427363446C4A49454A7154534230526D684356445A31614342354E326C4B4946467A5769426961453067'
for i in string:
if i not in word:
word[i] = 1
else:
word[i] = word[i] + 1
print(word)
print(sorted(word.keys()))
print(word.keys())
print(word.values())
挺奇葩的一道题目。
先对这一段进行了单词出现频率统计,发现范围在 0 - 9,A - E,发现刚好符合 16 进制,而且长度为 48。
分析代码如下
输出结果
那么把这个字符串按每两位,拆成 16 进制。(直接用正则
输出结果
先把十六进制变成 utf-8 格式,再用 base64 进行解密,得到了
b'r5yG lp9I BjM tFhBT6uh y7iJ QsZ bhM '
,后来以为是 qwe 加密,发现不是。我们直接观察键盘,发现每一小段字符串,标记在键盘上,会发现围成一圈,中间刚好有一个字母。将所有的字母合并起来。
不知道大小写,都提交一遍,小写成功。
正确答案:
zsctf{tongyuan}
。