- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试计算 torrent 的 info_hash
值。我将整个 torrent 读入 StringBuffer
,然后像下面这样切割:
d8:announce...info[d6:length...e]e
我似乎无法获得正确的哈希值。将 torrent 读入 StringBuffer
是否会破坏最后的字节字符串?我错过了什么吗?
public void calculateInfoHash( ){
try{
int index = rawData.indexOf("4:info") + 6;
int end = rawData.length() - 1;
String info = rawData.substring( index , end );
MessageDigest md = MessageDigest.getInstance( "SHA" );
md.update( info.getBytes() );
byte[] digest = md.digest();
for ( byte b : digest ) {
// print byte as 2 hex digits with lead 0.
//Separate pairs of digits with space
//System.out.print( "%" );
System.out.printf( "%02X", b & 0xff );
}
System.out.println( );
}catch( Exception e ) {
System.out.println( e.toString() );
}
}
最佳答案
在这种情况下我不知道正确的算法,但是从代码的角度来看,每当您在 String 上调用 getBytes() 时,您应该始终指定一个字符集,否则它会使用通常不是什么的系统默认值你要。将其替换为:
md.update( info.getBytes("UTF-8") );
看看是否有帮助。
关于java - 用java计算bittorent info_hash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1015045/
我有一个 base64 编码的 info_hashes 列表,例如: GiQilvwxZ4LUpJ/NpVUv9f7tV8s= 但是当我运行 echo ... | base64 -d,它没有给我真正的
我正在尝试计算 torrent 的 info_hash 值。我将整个 torrent 读入 StringBuffer,然后像下面这样切割: d8:announce...info[d6:length..
当我想向跟踪器发送初始请求时,我看到的所有引用都说它需要进行 url 编码。如果我将我拥有的 info 键的 SHA-1 哈希转换为十六进制字符串,为什么我需要对哈希进行 url 编码?它只包含允许的
我最近阅读了很多关于种子和磁力链接等的哈希。但是有一个我不明白的问题。 我有: 文件的哈希 和洪流的信息哈希 是infohash =文件的哈希? 如果是,如果 torrent 描述了 6 个要下载的文
如何计算info_hash参数?又名对应于信息字典的哈希?? 来自官方规范: info_hash The 20 byte sha1 hash of the bencoded form of the i
我有以下跟踪请求: "info_hash=%92%c345%c0%28%15%e4rr%b1y%17%b7%cbs%0a%ef%9a%fc&peer_id=-UT2210-%2abP%b2%c23~N
好吧,我已经搜索了所有相关问题和可用的源代码,只是卡住了。我正在使用相关问题中的代码: How to calculate the hash value of a torrent using Java
根据规范:http://wiki.theory.org/BitTorrentSpecification info_hash: urlencoded 20-byte SHA1 hash of the v
from libtorrent as lt info = lt.torrent_info(open('example.torrent','rb').read()) info.info_hash() 这
在bittorrent的DHT协议(protocol)的文档中,给出了get_peers方法用于查找具有给定info_hash的节点。它说如果响应包含“values”键,则查询的节点已返回有关包含准确
我目前正在努力尝试从我下载的 torrent 文件中生成 info_hash。我使用 uTorrent 并使用 PeerTracker 作为我的跟踪软件创建了 Torrent 文件。 我使用的是此处代
我正在尝试向跟踪器发送 HTTP get 请求。但我不知道 info_hash 和 peer_id 在哪里,我需要它们作为参数。根据 bittorent 规范,info_hash 是图元文件的信息“i
我正在用 objective-c 创建 torrent scraper,我正在使用 AFNetworking对于 HTTP 请求。我需要为跟踪器请求发送元信息部分的 sha1 散列。我已成功创建哈希并
我正在运行 Snort,它检测一些 P2P 事件,特别是 BitTorrent 宣布请求。我看到了 HTTP GET/announce.php?info_hash=XXX... 请求,我正在尝试将此
我是一名优秀的程序员,十分优秀!