从ruby中的Torrent文件中提取哈希值

时间:2011-06-27 05:30:14

标签: ruby hash bittorrent

我希望提取torrent文件的哈希标识符。

特别是,我正在寻找在打开一个torrent信息对话框中显示在Transmission / uTorrent中的相同哈希值(看起来像这样:7b435a6f051dec092a6ee440d793bfed6696cfa1)

认为这是来自torrent文件的信息词典的SHA1哈希。如果我要将二进制文件数据从一个字节解析为另一个字节,那么执行SHA1哈希加密我就可以得到它。

有没有人有更好的理解或有一些代码可以做到这一点?

3 个答案:

答案 0 :(得分:2)

使用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 :(得分:1)

您可以尝试RubyTorrent,这里有一个如何从.torrent文件中转储元数据的示例:https://github.com/dydx/RubyTorrent/blob/master/dump-metainfo.rb

还有一个bencode gem可用于解析.torrent文件。

答案 2 :(得分:0)

使用firecracker gem

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