如何计算使用Java的洪流文件的哈希值?我可以使用bencode来计算吗?如何使用Java计算洪流的哈希值
回答
使用SHA-1散列Torrent文件。您可以使用MessageDigest
来获取SHA-1实例。您需要阅读,直到达到4:info
,然后收集摘要的字节,直到剩余长度减1。
File file = new File("/file.torrent");
MessageDigest sha1 = MessageDigest.getInstance("SHA-1");
InputStream input = null;
try {
input = new FileInputStream(file);
StringBuilder builder = new StringBuilder();
while (!builder.toString().endsWith("4:info")) {
builder.append((char) input.read()); // It's ASCII anyway.
}
ByteArrayOutputStream output = new ByteArrayOutputStream();
for (int data; (data = input.read()) > -1; output.write(data));
sha1.update(output.toByteArray(), 0, output.size() - 1);
} finally {
if (input != null) try { input.close(); } catch (IOException ignore) {}
}
byte[] hash = sha1.digest(); // Here's your hash. Do your thing with it.
这应该有你需要的一切,从使用bencode一个更正式的资源
作为Nicholas I链接的官方说明的补充,我还会推荐inofficial规范维基发现在:https://wiki.theory.org/BitTorrentSpecification – Encombe 2015-02-04 18:01:43
我能计算呢?
不是。这是用于编码bittorrent元数据,而不是实际文件。
我可以从洪流文件使用bencode提取元数据? – Ramesh 2010-08-09 03:23:55
我不知道。但是,这与你在这里问的问题完全不同。你为什么不先把注意力放在这个上面......并按照上面的要求提供更多的信息。 – 2010-08-09 03:58:35
- 1. Python3计算洪流哈希
- 2. 计算部分流的MD5哈希值
- 3. symstore如何计算目录哈希值
- 4. 如何计算Python中的NTLM哈希?
- 5. 如何计算红宝石中的非唯一值哈希值
- 6. C#中的哈希计算
- 7. 计算MD5哈希值在二郎山
- 8. 如何计算SHA-256哈希大小
- 9. 如何使用java计算哈希表中存在的单词的频率
- 10. 使用python中的字符串+密钥计算SHA哈希值
- 11. 使用T-SQL计算'nvarchar'字符串的SHA1哈希值
- 12. 使用多作业器计算加密数据的哈希值
- 13. 您可以计算Active Directory使用的密码哈希值吗?
- 14. 为什么我的.net计算的MD5哈希值等于在网站上计算的哈希值?
- 15. CRC16哈希函数,用于计算来自两个输入的哈希值
- 16. 如何设计洪流应用程序?
- 17. C#NTLM哈希计算器
- 18. 红宝石计算哈希
- 19. 如何计算图像的sha1哈希值
- 20. 如何计算DB2 9.5中的MD5哈希值
- 21. 使用哈希值
- 22. Ruby哈希 - 如何在填充对象时使用哈希值?
- 23. 计算从未知长度的流在C#中的哈希
- 24. 计算SHA1哈希算法Powershell V2.0
- 25. 如何动态使用哈希值?
- 26. 如何使用ActionLink生成哈希值
- 27. 如何计算洪流播种机和同伴?
- 28. 如何用手计算字符串的哈希码?
- 29. 如何引用哈希值的数组的哈希值,以比较值
- 30. 计算视频文件的MD5(哈希)
我试图字节转换为哈希值,但哈希值是不同... \t \t对(INT I = 0; I
Ramesh
2010-08-09 01:54:28
@Ramesh - 当你保存文件时,文件可能已经被破坏了?你有没有使用'Reader'或'Scanner'来做到这一点?无论如何,你还没有提供足够的信息来让其他人知道真正发生了什么。 – 2010-08-09 02:50:41
@Ramesh:你说得对,散列应该只存在于torrent字典的'info'键。这是位于torrent文件的末尾,以'4:info'和'e'为边界。我已经相应地更新了答案。 – BalusC 2010-08-09 04:21:59