如何計算使用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. 如何計算樹的哈希值
- 4. 計算BIOS的哈希值
- 5. 建築磁鐵uri洪流哈希
- 6. Java計算MD5哈希
- 7. symstore如何計算目錄哈希值
- 8. 如何計算Python中的NTLM哈希?
- 9. 計算Blob的MD5哈希值
- 10. 如何計算紅寶石中的非唯一值哈希值
- 11. C#中的哈希計算
- 12. 如何計算SHA-256哈希大小
- 13. 如何計算Java中的對象的哈希碼?
- 14. 計算MD5哈希值在二郎山
- 15. 計算java.util.hash的哈希碼值時使用的常量說明
- 16. 在Java程序中計算zip文件的md5哈希值
- 17. 如何使用java計算哈希表中存在的單詞的頻率
- 18. 如何從Java哈希值求和值
- 19. 使用T-SQL計算'nvarchar'字符串的SHA1哈希值
- 20. 使用python中的字符串+密鑰計算SHA哈希值
- 21. 使用IBuffer來計算UWP文件的哈希值
- 22. 使用多作業器計算加密數據的哈希值
- 23. 您可以計算Active Directory使用的密碼哈希值嗎?
- 24. 爲什麼我的.net計算的MD5哈希值等於在網站上計算的哈希值?
- 25. CRC16哈希函數,用於計算來自兩個輸入的哈希值
- 26. 如何設計洪流應用程序?
- 27. SHA256哈希計算在C++
- 28. C#NTLM哈希計算器
- 29. 紅寶石計算哈希
- 30. 如何計算圖像的sha1哈希值
我試圖字節轉換爲哈希值,但哈希值是不同... \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