Pure MD5 не поддерживает частичную проверку и устарел.Если вы попытаетесь использовать чистые хеш-функции для чего-то более сложного, в конечном итоге вы встретите следующую ситуацию :
Я не понимаю ... Как толькофайл готов к завершению, он начинается заново.Я также получаю сообщение «Проверка содержимого файла» ... Что мне делать ???
Что делать, если загружать файл размером более 20 ГБ без возможности раннего обнаружения несоответствия?Нельзя выгружать загрузки в p2p без частичной проверки, поддерживаемой хеш-функцией.
Так что в настоящее время нужно придерживаться деревьев Меркле.Gnutella (и G1, и G2), и DC ++ (и NMDC, и ADC) используют TTH (TIGER Tree Hash), в то время как eDonkey 2k использует AICH, но этот хеш используется один, и он менее элегантен.Таким образом, TTH является стандартом де-факто, и было бы неплохо, если бы все хэши файлов везде (даже если это строго не требуется) были TTH по умолчанию, но мы еще не сделали этого.
DC ++ не основан на HTTP,но Gnutella (1 и 2) есть, так что вы можете изучать и / или поддерживать эти заголовки HTTP.Например, Shareaza может перехватывать загрузки из браузеров и выгружать их в p2p, используя заголовки Alt-Location, Content-URN, X-Thex-URI.