Извлечь хэш из торрент-файла в ruby - PullRequest
4 голосов
/ 27 июня 2011

Я надеялся извлечь хеш-идентификатор для торрент-файла.

В частности, я ищу тот же хеш, который появляется в Transmission / uTorrent при открытии диалогового окна информации о торренте (выглядит так: 7b435a6f051dec092a6ee440d793bfed6696cfa1)

Я думаю , что это хеш SHA1 из информационного словаря в торрент-файле. Если бы мне нужно было проанализировать данные двоичного файла из одного байта в другой, то выполнить хэш-шифрование SHA1, чтобы я мог его получить.

Кто-нибудь лучше понимает или имеет какой-нибудь код, который мог бы это сделать?

Ответы [ 3 ]

2 голосов
/ 07 августа 2011

Использование bencode gem:

require 'bencode'
require 'digest/sha1'

meta = BEncode.load_file(file) # File or file path
info_hash = Digest::SHA1.hexdigest(meta["info"].bencode)
1 голос
/ 27 июня 2011

Вы можете попробовать RubyTorrent , здесь приведен пример того, как выгрузить метаданные из файла .torrent: https://github.com/dydx/RubyTorrent/blob/master/dump-metainfo.rb

Существует также bencode gem, который можно использовать для анализа файлов .torrent.

0 голосов
/ 17 июня 2015

Использование фейерверка драгоценного камня

require "firecracker"
require "bencode_ext"
require 'open-uri'

torrent = open(link).read

# Get the info_hash from torrent file
info_hash = Firecracker.hash(torrent.bdecode)
puts "Info Hash = " + info_hash
...