什么是网络协议?网络协议指的是计算机网络中互相通信的对等实体之间交换信息时所必须遵守的规则的集合,是网络上所有设备(网络服务器、计算机及交换机、路由器、防火墙等)之间通......
SHA1、ed2k链接相关知识
什么文件的哈希?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链接。Win8.1正式版的电驴链接可以在这里找到:《Windows 8.1 正式版镜像下载大全(新增首发电驴链接)》)。
文件来自哪里?——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的后果。
相关文章
- 详细阅读
-
区块链核心技术体系架构的网络层主要包括什么详细阅读
区块链核心技术体系架构的网络层主要包括:A、网络管理B、P2P网络C、HTD、发现节点E、心跳服务网络管理网络管理包括对硬件、软件和人力的使用、综合与协调,以便对网络资源进行监视......
2022-04-28 328 区块链核心技术
-
软件调试的目的是什么详细阅读
软件调试的目的是:改正错误。软件调试的概念软件调试是泛指重现软件缺陷问题,定位和查找问题根源,最终解决问题的过程。软件调试通常有如下两种不同的定义:定义1:软件调试是为了......
2022-04-28 359 软件调试
- 详细阅读
- 详细阅读