Каждый торрент имеет уникальный идентификатор, называемый информационным хешем, и вы можете загружать файлы только от пиров, которые заполняют тот же самый информационный хеш. Если infohash отличается, даже если сами файлы могут быть одинаковыми, это все равно делает его совершенно новым торрентом.
Infohash напрямую основан на структуре info
dict внутри файла .torrent. Все файлы .torrent
являются структурированными данными, закодированными в формате bencode . Преобразованный в текст, этот торрент Ubuntu, например, будет выглядеть так:
{
"announce": "http://torrent.ubuntu.com:6969/announce"
"announce-list": [
0: [
0: "http://torrent.ubuntu.com:6969/announce"
]
1: [
0: "http://ipv6.torrent.ubuntu.com:6969/announce"
]
]
"comment": "Ubuntu CD releases.ubuntu.com"
"creation date": "1469103218"
"info": {
"length": "1513308160"
"name": "ubuntu-16.04.1-desktop-amd64.iso"
"piece length": "524288"
"pieces": bytes [
92 90 ed e1 86 46 26 1c 7f 40 02 6f 60 e1 17 1f a8 4b 3b ce 81 d2 c2 30
13 d5 9c d3 b7 14 d9 d8 4e e3 21 d8 04 44 be 97 db ce c0 87 b3 d0 26 22
c0 e1 80 d6 ec 83 75 40 86 6b 8d 88 9b bf ea db ad 49 d8 54 e4 69 ba b6
bc ca dd ed b0 02 5c 74 22 1b bf 00 97 89 b1 b3 fa f8 21 45 5e ff 0c 65
8f c3 00 a8 23 cd bd be 5d e5 5e 7e 2f 32 66 e3 0c 68 b3 09 de d3 1d 12
c7 32 6b 92 2e ce 3d 67 79 dc e0 5c 53 f2 a3 a8 84 55 b8 38 c4 26 2d ac
... (57596 more bytes)
]
}
}
Обратите внимание, как структура info: { ... }
описывает все содержимое торрента - имена файлов, размеры, хэш каждого "фрагмента", а иногда и такие вещи, как бит "частный торрент". Если ваши изменения каким-либо образом изменят эту часть, это приведет к изменению информационного хэша, и вы не сможете загрузить его со старых пиров.
Но если вы что-то измените вне info
диктата, проблем вообще не должно быть - при условии, конечно, что правки действительно имеют смысл. Например, вы можете свободно менять трекеры, перечисленные в announce-list
, редактировать comment
и, возможно, даже добавлять дополнительные поля.
Тем не менее, вместо слепого шестнадцатеричного редактирования необработанного файла, почему бы не использовать программу, которая действительно понимает структуру - например, настоящий «торрент-редактор»? Те, безусловно, существуют.
И, наконец, если ваши изменения приведут к тому, что файл больше не будет иметь действительный синтаксис bencode , это определенно "создаст проблемы", так как в программах больше не удастся загрузить файл .torrent. Это включает, например, удлинение или укорочение фрагмента текста. (В необработанном формате, который показывает ваш hex-редактор, обратите внимание, как каждая строка имеет префикс по длине, например 5:hello
. Они всегда должны совпадать.)