關燈 巨大 直達底部
親,雙擊螢幕即可自動滾動
第39部分

SCRIPTLanguage=”JavaScript”》《/SCRIPT》

或者,將指令碼獨立出來,直接放到另外一個檔案中,然後進行引用。則語法為:

《SCRIPTSRC=”檔名”》《/SCRIPT》

也就是說,上面那個是引用了一個檔案了,而檔名正好是JavaScript,出題者這麼出,正好是利用它們之間的相似之處,如果對這兩個概念不清楚,還真不能發現其中的疑點,當然,這麼一句無關緊要的程式碼隱藏在大量程式碼中,如果不細心也是發現不了的。

許毅按照上面的地址,將那個檔案開啟,果然裡面有東西,準確的說裡面是一句密文,許毅知道自己找對了。

就這麼一句密文,不知道加密演算法也是沒有任何辦法的。加密演算法何其多,任許毅如何厲害,單憑一句密文也是不能破解的,這個不比軟體破解,這只是一個過關密碼,也不能根據上下文來推斷,各種情況都是有可能的。

既然這是闖關遊戲,那肯定還有其他什麼線索,這點是可以肯定的。於是,許毅又回到網頁原始碼上,仔細閱讀起來,在其中,發現了一小段和加密有關的程式碼,不過這段程式碼實際上是沒有起作用的,並沒有得到執行,唯一的作用那就是干擾了。其中用的加密方式是base64加密,許毅感覺到自己又一次抓住了過關的鑰匙。

許毅再次檢視了一下密文的特點,更加肯定這正是用base64加密演算法加密的密文了。

Base64是網際網路上用的比較多的一種演算法,它是為了解決郵件傳輸中的加密和二進位制資料(聲音、圖形影象等)傳輸問題而產生的。也就是說,這個演算法和郵件聯絡緊密,幾乎所有的電子郵件軟體都把它作為預設的二進位制編碼,它已經成了現今電子郵件編碼的代名詞。

它的主要思想是將輸入的字串或資料編碼成只含有{‘A‘…‘Z‘,‘a‘…‘z‘,‘0‘…‘9‘,‘+‘,‘/‘}這64個可列印字元的串,故稱為“Base64”(基於64個字元)。它構造簡單,速度快,但安全性就一般了,因為這是一種可逆的加密演算法,也就是說只要知道密文,就可以將明文很輕易地恢復過來。

在PHP程式設計中,裡面就內建了這樣的加密函式,所以許毅很輕易地就將密文破解了,得到了進入第五關的密碼。

來到第五關的頁面,這次倒乾脆,直接給出了一個16位的密文,另外還有一段提示,說密碼是6位純數字。16位的密文,許毅立刻就想到了MD5加密,再聯絡題目給出的提示,許毅大致猜測自己的推斷應該是不錯了,不然也不會給出這麼一個提示。

看到這個,許毅有些無奈了,他估計這關卡也許就到頂了。因為MD5加密演算法是不可逆的,許毅要想破解,就只能是暴力破解了,編寫一個軟體對6位數字進行窮舉,肯定可以將密文跑出來。

既然是MD5,前面自然還有MDX(X5),不過自從MD5演算法91年誕生,此後十幾年,並沒有出現能夠取代它的MD6,可見其安全性之高。當然,它並不是沒有瑕疵,但這已經不影響它廣泛應用了。Unix系統中使用者的密碼就是以MD5經加密後儲存在檔案系統中。當使用者登入的時候,系統把使用者輸入的密碼計算成MD5值,然後再去和儲存在檔案系統中的MD5值進行比較,進而確定輸入的密碼是否正確。透過這樣的步驟,系統在並不知道使用者密碼的明碼的情況下就可以確定使用者登入系統的合法性。這不但可以避免使用者的密碼被具有系統管理員許可權的使用者知道,而且還在一定程度上增加了密碼被破解的難度。

現在許毅手中並沒有能夠跑密碼的工具,所以他也就不急著繼續,加上此刻時間已晚,他也就睡下了。

第二天,許毅找到周松一問,果然如許毅所料總共的關卡只有五關。這個破解遊戲公佈以後,大家紛紛向其發起了衝擊,可惜的是大部分人連第二關都闖不過去。紛紛在論壇抱怨,關卡難度太大,打擊人的信心云云。

這些題目的難度說大也不大,說小也不小,需要的知識並不多,總得來說技術含量不高,但要想順利闖過去,確實需要一些能力。

透過周松,許毅得知,這些題目並不是他出的,而是出自一個網名為“石頭”的朋友之手。許毅問了一下,連周松都只能闖過三關,在第四關難住了。那石頭是駭客學院的技術組顧問,對駭客學院的發展起了不小的作用。

“這個方法不錯,值得大力推廣。”寓教於樂,