题目内容: lrua{1uy3yj9l-yw9u-48j2-uuj8-36h03706y7u7}
字母数字对照表:
a b c d e f g h i j k l m n o p q r s t u v w x y z
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
给的“flag头”与标准头flag{}对照:
l 12 ——f 6 左移6位
r 18——l 12 左移6位
u 21——a1 右移6位
a 1——g 7——右移6位
偶数位左移6位,奇数位右移6位,数字不变,脚本如下
def decode_caser():
d = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
'w', 'x', 'y', 'z']
s = 'lrua{1uy3yj9l-yw9u-48j2-uuj8-36h03706y7u7}'
result = ''
for i in s:
if i in d:
n = d.index(i)
# 奇数位右移6位
if n % 2 == 0:
ni = (n + 6) % 26
result += d[ni]
# 偶数位左移6位
elif n % 2 != 0:
ni = (n + 20) % 26
result += d[ni]
else:
result += i
else:
result += i
return result
print(decode_caser())
s="lrua{1uy3yj9l-yw9u-48j2-uuj8-36h03706y7u7}"
letter="abcdefghijklmnopqrstuvwxyz"
flag=""
l=0
while l<len(s):
if s[l] in letter:
#奇数左移6位(从0开始)比如letter[11]='l'左移6位->'f'
if letter.index(s[l])%2==1:
flag+=chr((ord(s[l])-6-97)%26+97)
#偶数右移6位 比如letter[0]='a'右移6->'g'
else:
flag+=chr((ord(s[l])+6-97)%26+97)
else:
flag+=s[l]
l=l+1
print(flag)
"C:\Program Files\Python38\python3.exe" C:/Users/xxx/Desktop/4.py
flag{1ae3ed9f-ec9a-48d2-aad8-36b03706e7a7}
Process finished with exit code 0