约翰·提托,这位现代神秘学家所说的话语由数字和单个字母构成,可谓是令人疑惑。而这正是密码&编码学的内容,其中也与其身上的“计算机”元素有关。
跟随nG的脚步,让我们来从约翰·提托的话语中,看看编码学的样子。
(密码学仅为个人研究,仅仅是业余时间的消遣。并不保证绝对专业。)

46696E65
解密一个密码中最重要的第一步,是首先分析密文的加密方式。
密文有些常见的形式,可以试着主要观察以下特点:
因此我们观察一下约翰·提托的语音,尝试找找他们的共同点:
约翰·提托的语音 约翰·提托的话主要是由数字和大写的字母组成;
(密码学中字母的大小写有时也有区别,就像生活中登录账号的密码一样)
数字包含1-9中的所有数字,而字母仅包含A-F六种字母。
根据这些信息,已经可以推断此处使用十六进制ASCII码编码。
十六进制的编码在某些场合非常常见,比如设计中的取色:
HEX颜色值,用十六进制数字表示RGB值HEX颜色值,实际上就是使用两个字符为一组的三组十六进制值表示一个RGB颜色。
十六进制也在计算机底层中很常见。很多数据,比如注册表、内存等。
而ASCII码,是一种非常常见的单字符编码。当你按住Alt键加上一个数字序列时,就可以以ASCII码方式输入字符。但这样使用得是更为常见的ASCII码的十进制形式。
可以试试在电脑上首先按住Alt键,然后输入数字72;松开,然后继续,按住Alt输入105——
Hi
↑这就是我们得出的字符。将72和105转化为十六进制,可以得到4869。
4869,翻译为“Hi",这下听懂了……用同样的方法,就可以翻译出约翰·提托其他的话。

除此之外,还有什么编码吗?
\u9171\u00b7\u63d0\u6258
反斜杠加上u的开头,后面是四位到六位的十六进制数字,这就是Unicode编码。又叫万国码。
顾名思义,万国码是一个包含了世界上绝大多数字符的一种编码。这样也保证了全球各种不同的语言拥有了统一的编码标准。
万国码是通用的编码方式,目前世界上几乎所有的计算机都可以采用这种编码。
Unicode使用两个字节就能存储任意一个字符,但是对于ASCII码这种仅需单字节的拉丁字母,使用Unicode依然会占用一个额外的字节,于是从Unicode又衍生出了UTF-8的概念。
UTF-8编码能表示Unicode中所有字符的同时,某些情况又能较好地压缩体积,同时兼具兼容性。世界上绝大多数的网页均使用UTF-8形式编码。
B站中用于声明编码格式的标签,可以看到使用UTF-8编码这段的标题也是使用Unicode加密的,查阅字符集可以得出明文为“酱·提托”(雾)

6Im65pyv5Y2z5bCG5Yiw5p2l
如果你看到了这样包含了数字、字母和符号的一段“乱码”,那么这个很有可能是Base64编码。
正经来讲,Base64编码和上面的两种编码并不属于同类。Base64适用于网络传播,可以将任何二进制数据转换为一句基于64个字符内容的编码,这也是Base64名称的由来。
任何使用二进制表示数据的方式均可以使用Base64编码,所以理论上来讲、计算机中的任何数据都可以使用Base64编码。
但是Base64更多的应用是在网页中通过Base64编码一些复杂数据,例如图片、二进制文件等。
Base64中使用的字符也均是ASCII码中包含的字符,因此Base64编码的兼容性也是可以用无敌形容的。
另外,Base64中有一个填充符“=”,通常出现在末尾。如果一句密文的结尾是一个或多个=,那么它十有八九使用Base编码,并且大概率是常见的Base64编码。
是的,Base编码家族也有一些其他成员,比如Base32编码和Base128编码等等。根据使用的字符集中字符的数量,也可以延伸出许多不同的Base编码。
那么就可以试试解密一下标题使用Base64加密的内容。

简单说了三种编码,初窥密码&编码学的大门。
编码在近代计算机发展中发挥着不可磨灭的奠基作用,这也与游戏中约翰·提托的故事与语音相对应。司辰要是感兴趣,之后我也可以详细讲讲……
不过这次就是这些。愿司辰能从这种“奇怪”的方向了解什么。
5448414e4b53,464f52,52454144494e47.
标签: