一个解密问题的思路

01010011010001110100100101001110011000010101011101010110011110010110001001110111==

提示有三个:

1,最终答案是7位字母,有大小写

2,8位二进制和Base64加密

3,这是Monika教的加密法则哦

最近碰到的这鬼东西,这里就讲讲思路,纯属娱乐,顺便作为记录。‍_(:з」∠)_

其实这个还算是简单的?

提示其实还蛮清楚的‍ (¦3【▓▓】

就提示2来看,8位二进制和Base64编码,把数字这部分字符串分开就得到

01010011
01000111
01001001
01001110
01100001
01010111
01010110
01111001
01100010
01110111

结尾的“==”可以看出来这个是base64编码过的

把二进制对应ASCII表的字符

# i是8位二进制数
a = int(i, 2)
b = chr(a)

b就是8位二进制数对应的字符,连起来末尾加上“==”就可以拿去解码了。

import base64
data = '' # 这里是编码后的内容
output = base64.b64decode(data)

虽然解码出来中间有个 \r ,跟结果不太对,之后再提。

先讲讲提示3的Monika的加密法则,自然而然联想到DDLC文件的解密,monika的那个是文件改后缀作为图片打开,中间是一张黑白的二值图像,取像素点按白1黑0输出二进制字符串,每8位按ASCII转字符然后base64解码,得到内容。二进制数到解码内容的步骤和提示2解下来的步骤一样的。

就是这个 \r ,从某个地方了解到的结果编码了来看,是ASCII转字符之后对应应该是小写 l 的位置给换成了大写 I ,不太懂这是什么操作,靠人猜的吗?