本文的标题是《明日方舟解谜都需要会什么?(2.8 3:36更新第五部分第二小节)》来源于:由作者:陈昭席采编而成,主要讲述了文丨无Lee旋转@bigfun社区
你将看到什么?本贴将盘点自明日方舟产生以
文丨无Lee旋转@bigfun社区
你将看到什么?
本贴将盘点自明日方舟产生以来,解读隐藏信息所需要的知识,并对其简单讲解。由于谜题大多都已经被破解,这里不再对原谜题的解答进行复读。
一.Base64编码
1.什么是Base64编码?
Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。
其中包括A-Z,a-z共52个大小写英文字母,0-9共10个**数字,“+”,“/”个符号,共计64个可打印字符。
二进制编码转Base64做的事情就是把每三个8Bit的字节转换为四个6Bit的字节(3*8 = 4*6 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,然后每76个字符加一个换行符。也就是说,转换后的字符串理论上将要比原来的长1/3。
但是这种做**导致末尾有可能凑不齐8位,为了解决这个问题,当字符数不是3的倍数时,采用“=”补位。所以在Base64编码中,你有可能看到65种不同的字符。注意等号本身并没有参与到信息的传递中去,只是一个补位工具。
注:
什么是可打印字符?在ASCII码中规定0~31和127这33个字符属于控制字符,例如退格、另起一行,没法打印出来。而剩下的ASCII码对应着字母,数字,标点符号等等,可以打印出来,就被称为可打印字符。
2.在哪里用到过?
那么在明日方舟中的哪里可以见到它呢?游戏出了这么久,解谜看了那么多,相信大家都不陌生,主线任务做完之后的图片背景上,就隐藏着被镜像过的Base64编码。
二.异或密码
要了解异或密码,首先我们需要了解什么是异或运算。由于无法打出异或运算符号(圆圈中间带个加号),本段落中的“+”将全部代表异或运算符号。
1.异或运算的法则
由于无法打出异或运算符号(圆圈中间带个加号),本段落中的“+”将全部代表异或运算符号。
简单来理解,异或运算就是相同取0,相异取1,例如1+0=0,0+0=0,1+1=1。
异或运算遵循加法交换律和结合律。
2.异或密码
了解了异或运算,理解异或密码就不是什么难事。异或密码就是通过将暗文与密钥进行异或运算得到明文的。
为了便于理解,我们先从加密开始。
明文:红色
密钥:绿色
暗文:**
例如Arknights作为明文,其对应的二进制编码是:01000001 01110010 01101011 01101110 01101001 01100111 01101000 01110100 01110011,我们对其进行加密,就要编一个密钥,这个密钥是我们自己任意编写的。比如我们可以编这样一串密钥:01101010 01100100 01101110 01110110 01100101 01110111 01101100 01100110 01100100。然后我们对二者进行异或运算,就会得到暗文。01000001 01110010 01101011 01101110 01101001 01100111 01101000 01110100 01110011+00101011 00010110 00000101 00011000 00001100 00010000 00000100 00010010 00010111=00101011 00010110 00000101 00011000 00001100 00010000 00000100 00010010 00010111
由此,你只能通过将暗文与密钥进行异或运算才能得到明文:00101011 00010110 00000101 00011000 00001100 00010000 00000100 00010010 00010111+00101011 00010110 00000101 00011000 00001100 00010000 00000100 00010010 00010111=01000001 01110010 01101011 01101110 01101001 01100111 01101000 01110100 01110011,将红色部分由二进制转文本,即得到明文Arknights
3.在哪里用到过?
还记得游戏刚刚开始时,可露希尔(黑心老板娘)问你是否收到了信件吗?信件内容其实就是由异或密码加密而成的,明文与密钥分别隐藏在测试时的关卡剧情中和本文第一部分所讲的背景图片中。对此感兴趣的朋友可以移步微博@_GORIE得到详细步骤。
三.Morse Code
1.什么是摩尔斯电码?
摩尔斯电码于1837被发明出来,它的代码包括五种: 点、划、点和划之间的停顿、每个字符之间短的停顿、每个词之间中等的停顿,因此它并不像许多人想象中那样和二进制一样只有点和划。(真的只有点划的话电报传达信息怕不是阿消语速。。。)
摩尔斯电码由两种基本信号组成:短促的点信号“·”,读“滴”;保持一定时间的长信号“—”,读“嗒”。
间隔时间:
如果把滴持续的时间定义为1t,那么嗒=3t,滴嗒间=1t,字符间=3t,单词间=7t。
摩尔斯电码相关的知识大概是本文所讲内容中最“亲民”的部分,因为我们从小接受的安全教育都会教给我们国际通用求救信号SOS与其摩尔斯电码:三点,三长,三点。在各类侦探**中,我们也时常能够见到摩尔斯电码的身影。尽管各国已于1999年停止使用摩尔斯码,但由于它所占的频宽最少,又具一种技术及艺术的特性,在实际生活中仍然有广泛的应用。
在人教版生物课本(必修二)中,我们也能够看到摩尔斯电码的身影。
下图为摩尔斯电码对照表(图片来自百度百科)
2.在哪里用到过?
2018年12.31,C95上方舟主美唯老师的本子CARVE发售,本子中有一页留有大量摩尔斯码,见下图(图片来自微博)
四.解读隐藏在图片中的文字信息
2019年1月15日明日方舟官博上发了这样的一条消息,
看似和之前发的没有什么太大的区别,看一下第五张图片
右下角的框框里面
乍一看没有任何的信息,然而把手机屏幕亮度调到最高,或者用图片处理软件将图片亮度调高,对比度调低,就会得到下面的结果
隐藏的文字出现了:原来你还在写啊?
目前这段话的意义不明,在方舟其他类似的微博里也没有找到类似的隐藏文字。
值得注意的是,只有真理这段文字的结尾有色块标识,其他干员都没有类似的色块。
五.解读条形码
条形码的种类很多,有大概二十多种编码,在此不一一列举,仅挑几个在方舟解谜过程中出现过的编码进行简单介绍。
我们称条形码中黑色的为条(B),称白色的为空(S)
解读条形码的时候常用的手段是反色
1.Code128码
Code128码可以表示从ASCII 0至ASCII 127共128个字符,故称128码。至于这128个ASCII码,在第一部分讲Base64的时候已经简要提到过。
下面来讲一讲Code128码的构造
(1)Code128码的条和空总共分四种粗细,由细到粗分别赋予1,2,3,4四个值,这是其一大特征。
(2)Code128码的结构分为头,内容,校验,尾,四个部分。其中除了结尾之外,都是六个条一位,也就是三个黑条三个白条(B****S)一断。
头部总共有三种,分别是:211412,211214,211232三种,分别对应Code128的三种类型(共有A,B,C三类),A类含有标准数字和大写字母,控制符,特殊字符,B类含有标准数字和大写字母,小写字母,特殊字符,C类含有[00]-[99]的数字对**。看到Code128条形码的前六位,就可以知道该条形码所包含的内容大致是什么了。
内容就是条形码所含有的信息。
校验就是去除尾段之后的倒数一段(倒数六个条,B****S),用途是检验该条形码是否被正确编码。
尾部不管是AB还是C类Code128码,统一都是2331112。
解读该条形码的步骤是:将条形码的头和尾截下来,根据头部六位判断条形码的类型,然后将剩下的部分6个条空一断,查编码对照表进行阅读。
我们可以以官博上出现过的条形码为例进行解读。
2019年1月22日鹰角发布三测预告,在其中的第四张图片中暗藏了一个条形码
先将他们平移至同一水平线
然后据我所知没有这种格式的条形码,于是想到反色
再按照粗细读一下,结果是211232/221231/23(2)1132/121223/112214/2331112
红色部分是开头,表示条形码是C类的,也就是说里面包含的都是[00]-[99]的数字对**
绿色部分是内容,没什么好多说的,第二部分括号外部分是我肉眼观察出来的,括号内是机器扫出来的。221231对应20,221132对应19(肉眼看的231132没有对应,大概就是原图的失误,这个问题的锅应该鹰角背)121223对应03
橙色(大概是橙色,或者说浅红?)对应的是校验码,只是用于校验,一定要查的话,112214对应的是69
紫色部分是结尾,固定格式,只要是Code128,不管AB还是C类,统统都是2331112
综上,这个条形码隐藏的信息就是201903,也就是三测开始的月份呢。
2.Code39码
当数据需要处理字母时,CODE 39 是最理想的。
Code39码叫这个名字并不是因为它能表示39个字符,事实上,Code39能够且仅能够表示以下43个有效输入字符:26个大写字母(A – Z),十个**数字(0 – 9),连接号(-),句号(.),空格,美圆符号($),斜杠(/),加号(+)以及百分号(%)。
下面来讲一讲Code39码的构造。
(1)Code39码的条和空总共分两种粗细,细的是0,粗的是1。
(2)Code39码的结构分为开头,内容,结尾,其中开头与结尾一定是*(就是星号,对应010010100,不是被屏蔽了)。
(3)Code39通常情况下不需要校验码。但是对于精确度要求高的应用,需要在code39条形码后面增加一个校验码(即结尾星号后面再加一个校验码)。
(4)Code39之所以叫这个名字,是源于其条和空的图案。与Code128编码6个条空一断句的方式不同,Code39是9个条空表示一个字符(即B********),字符与字符之间的空是字符间隔,无意义,举个例子,B******************,中间黑色的S就是字符间隔。而在这九个条空之中,一定有三个是宽的(不管黑白),故称39码。
下面给出一个Code39码的对照表。可以看看,九个条空中确实是有三个是宽的。
(5)字符间隔一般来说,是窄的空而不是宽的。
解读该条形码的步骤是:将条形码的头和尾截下来,将剩下的部分9个条空一断,查编码对照表进行阅读。
我们也可以以官博上出现过的条形码为例进行解读。
在2019年4月18日,官博发出了公测预告
在最后三张图的下方,隐藏了类似条形码的信息,由其只有粗细两种线条初步判断它是Code39编码的条形码,为了方便大家观看,我用图像处理软件进行了一系列处理,包括拼接,拉伸,反相,最终得到了如图的条形码。
处理过后的有些细小的字符间隔不太好看,需要仔细辨认,当然如果不做拉伸处理的话,还是很好辨认的,但是这样发上来图片会特别长,又不方便大家观看。。。
我们可以照着读一下,注意这里面条空的粗细并不一致,空明显都比条要粗一些,字符间隔也是比最细的空还要细。
100001001(A)空100000110(R)空100000011(K)空000010011(N)空001001100(I)空000001101(G)空100001100(H)空000010110(T)空001000110(S)空010000101(-)
连起来读就是ARKNIGHTS-
值得吐槽的是,这次鹰角并没有严格按照Code39的格式,在开头与结尾加上*(再次强调是星号,不是被屏蔽了),而那个看似奇怪的“-”,在原图中与之前的“S”虽然在同一张图里面,但是有很大的空隙,推测为之前所提到的校验码。
补充:
埃及研也曾解析过这个条形码,当时我看他们的解法看了半天没看懂,在自己写完上面那一堆之后才明白过来(后 知 后 觉),图中左半部分分为BAR和WILD BLANK,意思就是黑条和宽的白条,而大部分Code39码的三个宽条都是两个黑宽条一个白宽条,只要找到了黑条对应的数字和白色宽条的位置,那么这个字符就可以被确定下来。
在图片右半部分的表中,左边那一列表示黑条,上面那一行表示白空,这样找到了BAR和WILD BLANK,就可以通过横纵坐标找到对应的字符了,例如找黑条是10001,白空的第三个是宽空的条形码对应的字符,只需要在右表中找到对应的行与列,就能发现对应的字符是A。
这种方法显然比我刚开始讲的那种方法方便快捷许多。
还有其他类型条形码,过亿会更新,楼主正在备战危机合约,可能会咕一会儿。
不要点赞啦,喜欢的话评论一下顶一顶啊秋梨膏
(*꒦ິ⌓꒦ີ)
本文原作者为陈昭席,转载请注明:出处!如该文有不妥之处,请联系站长删除,谢谢合作~
原创文章,作者:陈昭席,如若转载,请注明出处:http://www.kaicen.cn/20220409270293.html