eMule分析之ED2K链接格式的创建

ED2K链接格式的创建

2008年10月8日
  
基本ed2k链接 :       ed2k://|file|<文件名称>|<文件大小>|<文件哈希值>|/

eD2k片段哈希值链接  ed2k://|file|<文件名称>|<文件大小>|<文件哈希值>|p=<片段哈希值>|/

eD2k来源链接         ed2k://|file|<文件名称>|<文件大小>|<文件哈希值>|/|sources,|/

eD2k主机链接         ed2k://|file|<文件名称>|<文件大小>|<文件哈希值>|/|sources,<主机名称:端口>|/

eD2kHTTP 来源链接    ed2k://|file|<文件名称>|<文件大小>|<文件哈希值>|s=http://any.com/文件名称|/

eD2k根哈希值链接     ed2k://|file|<文件名称>|<文件大小>|<文件哈希值>|h=<根哈希值>|/

以上这几种格式网上经常见到


ed2k://|server|1.1.1.1|1986|/
ed2k://|serverlist|字符串|/
这两个格式我看了代码才知道,至于ed2k://|serverlist|字符串|/这其中的字符串是什么,暂时还不清除,以后慢慢分析.

1 文件哈希值
将文件分成每块9.28M大小,一块9.28M通过Hash算法(md4)生成一个Hash值,然后根据所有的hash值,再次hash(md4)生成一个Hash值.最后这次计

算的hash值就是文件hash值

2 P=片段哈希值(HashSet)
如果文件大于等于9.28M
每个9.28M的部分将产生一个32个字符的hash值,每32个字符之间用:号隔开

如果小于9.28M,那么ED2K链接中的片段Hash值为空

3 h=根哈希值(AICH)

这里的是分割9.28M的块,将9.28M(9500K)分成53块,52块180K和1块140K,将所有180K或140K的块的hash,包括校验hash组成树,链接中只有

AICHHash树的根

 

你可能感兴趣的:(VC)