flag的加密形式不大容易看出来,我们可以先看附件内容:
这种类似的代码可以转化写成python的代码,只是需要提前赋值一下即可
s=[]
for i in range(0,256):
s.append(i)
key='hello world'
lenth=len(key)
flag=open(r"enc.txt",'r',encoding='ISO-8859-1').read()#需要设置编码,不然会报错
#print(flag)
t=[]
for i in range(0,256):
t.append(key[i%lenth])
j=0
for i in range(0,256):
j=(j+s[i]+ord(t[i]))%256
s[i],s[j]=s[j],s[i]
string=''
i=0
j=0
for m in flag:
i=(i+1)%256
j=(j+s[i])%256
s[i],s[j]=s[j],s[i]
x=(s[i]+(s[j]%256))%256
string+=chr(ord(m)^s[x])
print(string)
最后就得到flag啦
EIS{55a0a84f86a6ad40006f014619577ad3}