Songs0fFailure писал(а):
thelordodin писал(а):
60086535Да, потому что формат уже предусматривает поле в торрент файлах md5sum, хоть и не обязательное.
Соответственно по этому полю можно сопоставить файл, независимо от его имени.
где это написано ? я только BEP-38 видел, но там про md5 нет ничего.
...
Про хеш всего файла и поле написано тут:
http://ru.wikipedia.org/wiki/.torrent (не конкретно) и тут
https://wiki.theory.org/BitTorrentSpecification (тут более конкретно, Ctrl-F по md5sum

).
В моем умозаключении оно было нужно чтобы для того чтобы идентифицировать файл, независимо от того на какие куски он разбит, а также на случай ежели внутри торрента файл не один.
Когда файлов несколько, начало второго файла попадает в последний кусок первого файла.
Я исходил из того что:
(1) на диске есть переименованные файлы,
(2) а еще, отдельно от них существуют торрент файлы, которые целятся в файлы с другим именем (которых уже нет).
Так вот если в торрентах есть md5sum, то вполне понятен алгоритм по которому можно сопоставить:
расчитать md5 для всех файлов на диске (или в какой-то папке), загнать это все в мини БД (например sqlite), затем для каждого torrent файла поискать по md5 в базе. Если совпало - побить файл на куски и проверить все SHA.
Без md5 можно то же самое сделать, но будет дольше, почему: потому что тогда сопоставлять первоначально придется по размеру файла.
Если размер файла совпал с размером в торренте, то нужно взять любой кусок внутри файла, посчитать него SHA и сравнить с торрентом.
Тут будет проблема в том что может оказаться довольно много файлов с одинаковым размером, поэтому и придется SHA посчитать чтобы найти соответствие.