從“約翰·提托”聊編碼學
約翰·提托,這位現(xiàn)代神秘學家所說的話語由數(shù)字和單個字母構(gòu)成,可謂是令人疑惑。而這正是密碼&編碼學的內(nèi)容,其中也與其身上的“計算機”元素有關。
跟隨nG的腳步,讓我們來從約翰·提托的話語中,看看編碼學的樣子。
(密碼學僅為個人研究,僅僅是業(yè)余時間的消遣。并不保證絕對專業(yè)。)

46696E65
解密一個密碼中最重要的第一步,是首先分析密文的加密方式。
密文有些常見的形式,可以試著主要觀察以下特點:
是字符碼還是圖形碼
密文是否有某些本身的含義
字符碼若無意義,觀察內(nèi)容的構(gòu)成。如數(shù)字、大寫字母和小寫字母、符號等,找出統(tǒng)一的規(guī)律
字符間的空位、某些統(tǒng)一的字符規(guī)律等
因此我們觀察一下約翰·提托的語音,嘗試找找他們的共同點:

約翰·提托的話主要是由數(shù)字和大寫的字母組成;
(密碼學中字母的大小寫有時也有區(qū)別,就像生活中登錄賬號的密碼一樣)
數(shù)字包含1-9中的所有數(shù)字,而字母僅包含A-F六種字母。
根據(jù)這些信息,已經(jīng)可以推斷此處使用十六進制ASCII碼編碼。
十六進制的編碼在某些場合非常常見,比如設計中的取色:

HEX顏色值,實際上就是使用兩個字符為一組的三組十六進制值表示一個RGB顏色。
十六進制也在計算機底層中很常見。很多數(shù)據(jù),比如注冊表、內(nèi)存等。
而ASCII碼,是一種非常常見的單字符編碼。當你按住Alt鍵加上一個數(shù)字序列時,就可以以ASCII碼方式輸入字符。但這樣使用得是更為常見的ASCII碼的十進制形式。
可以試試在電腦上首先按住Alt鍵,然后輸入數(shù)字72;松開,然后繼續(xù),按住Alt輸入105——
Hi
↑這就是我們得出的字符。將72和105轉(zhuǎn)化為十六進制,可以得到4869。

用同樣的方法,就可以翻譯出約翰·提托其他的話。

除此之外,還有什么編碼嗎?
\u9171\u00b7\u63d0\u6258
反斜杠加上u的開頭,后面是四位到六位的十六進制數(shù)字,這就是Unicode編碼。又叫萬國碼。
顧名思義,萬國碼是一個包含了世界上絕大多數(shù)字符的一種編碼。這樣也保證了全球各種不同的語言擁有了統(tǒng)一的編碼標準。
萬國碼是通用的編碼方式,目前世界上幾乎所有的計算機都可以采用這種編碼。
Unicode使用兩個字節(jié)就能存儲任意一個字符,但是對于ASCII碼這種僅需單字節(jié)的拉丁字母,使用Unicode依然會占用一個額外的字節(jié),于是從Unicode又衍生出了UTF-8的概念。
UTF-8編碼能表示Unicode中所有字符的同時,某些情況又能較好地壓縮體積,同時兼具兼容性。世界上絕大多數(shù)的網(wǎng)頁均使用UTF-8形式編碼。

這段的標題也是使用Unicode加密的,查閱字符集可以得出明文為“醬·提托”(霧)

6Im65pyv5Y2z5bCG5Yiw5p2l
如果你看到了這樣包含了數(shù)字、字母和符號的一段“亂碼”,那么這個很有可能是Base64編碼。
正經(jīng)來講,Base64編碼和上面的兩種編碼并不屬于同類。Base64適用于網(wǎng)絡傳播,可以將任何二進制數(shù)據(jù)轉(zhuǎn)換為一句基于64個字符內(nèi)容的編碼,這也是Base64名稱的由來。
任何使用二進制表示數(shù)據(jù)的方式均可以使用Base64編碼,所以理論上來講、計算機中的任何數(shù)據(jù)都可以使用Base64編碼。
但是Base64更多的應用是在網(wǎng)頁中通過Base64編碼一些復雜數(shù)據(jù),例如圖片、二進制文件等。
Base64中使用的字符也均是ASCII碼中包含的字符,因此Base64編碼的兼容性也是可以用無敵形容的。
另外,Base64中有一個填充符“=”,通常出現(xiàn)在末尾。如果一句密文的結(jié)尾是一個或多個=,那么它十有八九使用Base編碼,并且大概率是常見的Base64編碼。
是的,Base編碼家族也有一些其他成員,比如Base32編碼和Base128編碼等等。根據(jù)使用的字符集中字符的數(shù)量,也可以延伸出許多不同的Base編碼。
那么就可以試試解密一下標題使用Base64加密的內(nèi)容。

簡單說了三種編碼,初窺密碼&編碼學的大門。
編碼在近代計算機發(fā)展中發(fā)揮著不可磨滅的奠基作用,這也與游戲中約翰·提托的故事與語音相對應。司辰要是感興趣,之后我也可以詳細講講……
不過這次就是這些。愿司辰能從這種“奇怪”的方向了解什么。
5448414e4b53,464f52,52454144494e47.
從“約翰·提托”聊編碼學的評論 (共 條)
