eMule里什么是HASH?
很多御骡多年的老骡手可能和我一样给新手讲不清楚这个问题,在此我翻查了一些资料,并结合eMule的特性,给大家解释一下
首先我们经常挂在嘴上的就是Hash、UserHash、文件Hash等等这样的词汇
其实Hash翻译成中文是 哈希 在编程上又称作 哈希函数
那么这个函数在eMule 这个P2P软件中起到了什么作用呢?
这里我们需要了解一个概念MD(MD2、MD4、MD5)
我们都知道电影、音乐、软件等等都是以文件的形式储存在计算机器上的
但是我们有时候并没有必要看到文件的全部,或者是一部分才能了解这个文件
就好像看一本书一样,只要知道目录,就知道整本书大概的内容了
那么就由90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest开发
出一套Message-Digest Algorithm
同时我们引入了哈希函数(HASH)
HASH(哈希)函数提供了这样一种计算过程:输入一个长度不固定的字符串,返回一串定长度的字符串,又称HASH值。
单向HASH函数用于产生信息摘要。
当我们将一个文件放入eMule的共享文件里的时候
我们就开始了这样的算法步骤(大家都能体会到,硬盘狂转-提取文件信息的时候吧)
最终通过这一系列的算法我们得到了一个128个二进制位
ps: hash算法更多的是用来校验文件的完整性
当第一个人把自己的共享文件变成HASH值的时候,向服务器进行的提交
同时可能还有很多提交者,那么他们的HASH值就进入了服务器的一个动态列表里
列表中存放着的是拥有这些同样文件的用户的IP 、PORT等等地址信息
当另外的用户需要下载或者搜索时,服务器就把这个信息传递给需要的用户
那么这个用户就知道到底应该去哪里下载喽
当完成协议验证等等程序流程后,两个小骡骡就开始了点对点的传播
电驴下载文件过多,硬盘文件过碎;
关机前要正确退出电驴,而不是强制关机。