首先拿到题目是一个图片
Do_you_like_misc.png
根据题目steg可知是stegpy解密
但是大多数人可能卡在了密码
原比赛提示是16位的密钥 所以
Do_you_like_misc刚好16位
解开后发现一个txt
根据代码提示可知是放射密码
贴上代码
def get(a, b):
if b == 0:
return 1, 0
else:
k = a // b
remainder = a % b
x1, y1 = get(b, remainder)
x, y = y1, x1 - k * y1
return x, y
s = input("请输入解密字符:").upper()
a = int(input("请输入a:"))
b = int(input("请输入b:"))
# 求a关于26的乘法逆元
x, y = get(a, 26)
a1 = x % 26
l = len(s)
for i in range(l):
cipher = a1 * (ord(s[i]) - 65 - b) % 26
res = chr(cipher + 65)
print(res, end='')
然后根据s1gma师傅帮助 a = 25 , b = 9
成功解出flag
特此感谢s1gma师傅提供的思路