TL;DR
今年的新年游戏到这里就告一段落了,感谢各位的参与,再次祝大家新年快乐。
游戏的解析
首先给出本次游戏的解谜过程:
感谢 @电脑星人 大佬非常详细的解析。原本提前写好了一些解谜的主要过程,但是大佬写的比我好多了,这里就直接放出文章的链接,想要了解详细解谜过程的同学可以去看一下😂。
一些数据
今年的游戏从 1 月 20 号开始一共持续了 12 天,按照规则提交密码 49 次,一共有 5 位同学拿到了红包。在 1 月 21 号 13 点 23 分,谜题首先由 @FantasyLand の 暗梦 同学成功破解。另外有位同学使用脚本来遍历提交答案,一共提交了 540 次答案,由于事先设置了 QPS 限制再加上发现得比较及时所以只对这位同学的 IP 做了短暂的限制。
后话
为什么隐写信息是 BGR 顺序而不是 RGB 顺序
这个问题确实是我的疏忽>﹏<,因为隐写脚本(LSB-Steganography)使用了 OpenCV,而 OpenCV 在读取图片时默认是按照 BGR 格式来读取的,所以隐写的信息自然也是 BGR 顺序。如果想要变成 RGB 顺序,则需要对隐写脚本进行如下修改:
def main():
args = docopt.docopt(__doc__, version="0.2")
in_f = args["--in"]
out_f = args["--out"]
in_img = cv2.cvtColor(cv2.imread(in_f), cv2.COLOR_BGR2RGB) # 将 BGR 格式转为 RGB 格式。
steg = LSBSteg(in_img)
lossy_formats = ["jpeg", "jpg"]
if args['encode']:
# Handling lossy format
out_f, out_ext = out_f.split(".")
if out_ext in lossy_formats:
out_f = out_f + ".png"
print("Output file changed to ", out_f)
data = open(args["--file"], "rb").read()
res = cv2.cvtColor(steg.encode_binary(data), cv2.COLOR_RGB2BGR) # 将 RGB 格式转为 BGR 格式,不然图片会反色。
cv2.imwrite(out_f+'.png', res)
elif args["decode"]:
...这样生成出来的图片隐写信息就是 RGB 顺序了。

2023年02月16日 13:57
牛
2023年02月01日 22:27
所以答案是啥呀,我就是进行到最后那张图就结束了,找不到密码
2023年02月01日 22:37
答案是 Bingo 哦,『佛曰:呼俱是諳所侄苦俱智缽故喝僧無怯曳一藝怯寫皤呼罰迦曰』这个是用了与佛论禅加密,在这里:https://www.keyfc.net/bbs/tools/tudoucode.aspx 复制到『佛家妙语』文本输入框然后点『参悟佛所言的真意』按钮就可以得到最终答案啦
2023年02月01日 22:46
是不是最后那张图里,右侧那些点就是中文呢,然后因为不显示所以就是点,需要还原一下Σ(っ °Д °;)っ,可恶我直接忽略了
2023年02月01日 23:02
右边那些点是因为 Stegsolve 这个软件识别不出来有效的信息(比如中文字符,无意义的乱码等等),就会显示点。到图片的那一步的话只需要点 Save Bin 按钮,然后保存为 TXT 文件,再用 VS Code 等的编辑器打开就可以看到这一行信息啦。嘿嘿嘿,这次有两层加密哦😂
2023年02月01日 23:41
2023年02月01日 23:47
2023年02月01日 22:41
啊这,你写的密码是英文的纯纯误导向😭