看到名字,就不想做了,java没学过怎么办,不过这题不难。
用这个看
打开后如下
这是两个函数,首先进入main
我们输入的flag就是str,然后把str放进stringArr,用Encrypt()函数处理
这个循环真不一般,和c语言里面一点都不一样,发现它叫“增强for循环”,其实就是依此用arr中的字符去代替c中的字符,就是对我们输入的flag进行处理
接下来按照惯例,应该就是对比了
果不其然,这应该就是处理后的字符,理论结束,实践开始
(tips:a^b=c,那么c^a=b,c^b=a)
key=[180, 136, 137, 147, 191, 137, 147, 191, 148, 136, 133, 191, 134, 140, 129, 135, 191, 65]
flag='flag{'
for i in range(len(key)):
flag+=chr(key[i]^32-ord('@'))
flag+='}'
print(flag)
第一次写的脚本这样,然后报错
问了神奇的chatgpt发现是异或的运算优先级小于减法
加上括号,答案出现
flag{This_is_the_flag_!}