前段時間微軟向MSDN訂閱用戶開放了Win8.1正式版的鏡像下載,可是經過用戶對比,已確認和洩露鏡像是完全一致的。所以在這裡小編告訴大家已經下載了洩露鏡像的就不要重新下載了。不過總有很多朋友有強迫症,不重新下載一遍心裡就不舒服。你有沒有這樣的強迫症呢?下面我們就來學習一下SHA1,ed2k的相關知識,看看到底為啥上面說微軟開放的和之前洩露的是一樣的,讀完下面的文章你就會知道原因所在了。
===================================================
小知識1:什麼文件的哈希?SHA1是什麼?有何作用?
文件哈希值——我們可以簡單的將其理解為:使用特殊的算法對文件數據進行計算而得到的一串字符。這樣的算法有很多種,對於每一種算法,一個文件對應唯一的哈希值,但反過來不一定。不過對於一個優秀的算法來說,因為其反向推算幾乎無法實現,也就是說幾乎不可能根據一個文件的哈希值去偽造出一個擁有同樣哈希值的文件(並且這個文件還能具備和原文件相同的功能),所以我們就認為哈希相同的文件 就是同一個文件,完全可以依據哈希值來判斷文件的正確和完整與否。常用的文件哈希算法有:MD2、MD4、MD5、SHA1等。人們經常根據文件的MD5、SHA1來判斷文件的真偽或者完整性。具體方法可參考《為什麼要校驗,怎麼校驗》。
有不少朋友不相信文件哈希這套理論,卻一直在等待一種叫做ed2k的下載鏈接。殊不知,eD2k鏈接本身就是基於文件的一種哈希值而得來的,而有了洩露版鏡像我們其實就已經有了這個文件的ed2k下載鏈接。下面我們一探究竟。
小知識2:ed2k鏈接是怎麼產生的?——科學
下載控們每天都在下載著各種東西——電影、游戲、軟件、動漫… … 在形式多樣的下載鏈接中,ed2k是我們較常見的一種。但是你是否了解過,我們把一個ed2k鏈接的文件下載到電腦這一過程中究竟發生了什麼嗎?想要知道其中的奧秘並不難,我們先來從ed2k鏈接的產生來談起。
仔細觀察一下ed2k鏈接形式,你會發現這些鏈接都遵循著特定的格式。對於一個文件資源其基本的ed2k鏈接形式為:
ed2k://|file|aa….aa|bb…..bb|cc……cc|/
其中“aa….aa”部分表示文件名,可以隨意更改;“bb…..bb”部分表示文件大小(字節);最關鍵的是“cc……cc”部分。“cc……cc”部分其實就是文件的一種哈希值(即ed2k哈希算法,是MD4算法的一種變體)。說白了,ed2k鏈接的基本形式其實就是幾組文件信息的組合。因為文件哈希值具有唯一性,所以某一個文件的ed2k分享鏈接其實自該文件誕生起就已經唯一確定了,而洩露鏡像和微軟向MSDN用戶發放的鏡像是完全相同的,所以二者ed2k鏈接也是相同的。注意文件名稱是可隨意更改的,這不會影響到最終下載結果(還記得把葫蘆娃當XX片下載的鬧劇麼?)。正是因為一個文件的ed2k鏈接是唯一的,所以對於一些大眾資源其ed2k鏈接的發布者和資源的共享者可能並不是同一個人,我們還要感謝那些在背後默默為我們分享的人們。(你可能就是其中一員。這裡,小編也要為自己鼓掌一下`(*∩_∩*))
那麼ed2k鏈接究竟是怎麼產生的呢?很簡單,只要下載正宗的電驢客戶端(用國外的。國內的基本都變成坑爹貨了),將你電腦上的文件放到分享目錄就會自動生成該文件的ed2k分享鏈接。或者也可以使用哈希計算軟件算出文件的ed2k哈希,然後再組合一下就能得到ed2k鏈接地址。這裡介紹兩款軟件,hashcalc 和 LinkCreator,前者可以計算出文件的ed2k哈希(如下圖,32位Win8.1零售鏡像ed2k哈希值),後者可直接生成文件的ed2k鏈接。
文件來自哪裡?——ed2k全民網絡檔案館
通過前面ed2k鏈接的產生原理我們知道,我們可以給自己電腦裡的任何一個文件生成ed2k鏈接。好了,現在鏈接已經有了,那麼我們下載文件時,究竟是從哪裡獲得文件呢?這就需要簡單了解一下ed2k網絡的工作原理了。最後,還需考慮我國國情。
ed2k網絡:
ed2k網絡是一種全世界網民都可以參與其中的文件共享網絡,你只需要下載一款電驢客戶端即可從ed2k網絡下載文件或將自己電腦上的文件分享到ed2k網絡中。在ed2k網絡中下載或者分享文件時識別文件的依據就是ed2k鏈接(就是文件哈希)。下載文件時文件是被分成很多片段來下載的:你從別人電腦中獲取他們已經下載好的部分,同時你也把自己下載好的部分上傳給其他人。
但是迅雷、旋風等國內軟件其實並不是純碎的ed2k客戶端,即便你下載文件時使用的是ed2k鏈接,文件來源也不會全是來自ed2k網路。因為迅雷會根據該文件的ed2k哈希來識別文件,然後它可以從多種渠道(迅雷高速、離線、鏡像下載、P2P等)來獲取資源。對於比較熱門的資源,迅雷已經掌握了這個文件的多種獲取渠道,因此,你完全可以計算出某個熱門文件的ed2k鏈接將其發布到網絡,即使自己不做種也可以讓別人下載到。
網盤分享,或者ed2k等下載方式都是根據文件的哈希算法來識別文件的。網盤上傳文件時首先會計算一下文件的哈希,如果服務器已經存在這個文件上傳時必定會秒傳,所以不管誰來上傳,分享出來的鏈接都指向同一個文件,只不過名字有變化而已;而ed2k鏈接只認哈希值,文件名不影響下載;所以即使有人重新分享了MSDN原版鏡像,你在下載文件時文件數據來源和之前是沒有任何區別的,下載結果自然也就是一樣的。
以上就是SHA1、 ed2k的一些簡單介紹。明白了上面這些知識,你還有強迫症麼?
=======================================
關於ed2k的其他內容:
ed2k網絡需要服務器的參與,下載客戶端後可以在這裡獲取服務器列表,然後將列表導入客戶端即可連接至ed2k網絡。服務器負責將下載和分享同一文件的客戶端聯系在一起,同時提供資源的搜索功能。客戶端也可以依靠Kad完成這些工作,Kad的出現正在試圖削弱服務器的作用。
ed2k網絡是一種開放的文件分享網絡,參與到ed2k網絡的客戶端應遵守GPL協議,其搜索下載都應該是不受限制的,讓每一個用戶都能在使用中獲得自由平等的權利。國外的一些優秀客戶端都遵循這一協議,使用這些客戶端用戶是不會受到任何限制的。
ed2k固然是個好東西,但是到了我們偉大的祖國,因為商業公司的參與就變味了。這也是由咱們的國情決定的,網民沒有分享的精神和意識,商業公司唯利是圖,上行下行帶寬的不對等等等… …一些例子:
此驢非彼驢?
相信很多朋友都用過國內某著名的電驢下載軟件,要知道這款軟件不但違反開源協議,而且還在軟件中加入了諸多限制,因此被許多知情用戶戲稱為“閹割驢”或“假驢”等。詳細內容可參考《VeryCD easyMule v1.1.15 正式版介紹評述》,不再贅述。
為什麼迅雷被稱作吸血鬼?
那麼,迅雷為什麼被稱為吸血鬼呢?這是因為其違反了GPL協議,其在ed2k網絡中只獲取不分享,或者只優先給迅雷客戶端用戶上傳。所以熱愛分享的人們都將其稱作吸血鬼。
P2Pxxxxx——種子搜索神器到底神不神?
前面已經提到過,正宗的ed2k客戶端搜索資源是完全不受限制的。因此,搜索神器其實並不神奇。相反,這些只向服務器發出搜索請求,但從來不主動分享資源的客戶端對於服務器來說只能是負擔,對於ed2k網絡也沒有任何貢獻。曾經,就因為這樣的原因,導致了國外服務器決定封鎖國內IP的後果。