我正在建立一个基于 p2p 网络的项目。而且我找不到任何算法来计算种子文件的哈希信息。有人可以帮忙吗?
问问题
463 次
2 回答
1
您可以使用 java.security.MessageDigest。检查以下计算 MD5Sum/hash 字节并将其转换为十六进制字符串格式的程序。
MessageDigest md5 = null;
byte[] buffer = new byte[1024];
int bytesRead = 0;
String md5ChkSumHex = null;
InputStream is = null;
String filePath = "D:/myFile.txt";
try
{
is = new FileInputStream(new File(filePath));
md5 = MessageDigest.getInstance("MD5");
try {
while ((bytesRead = is.read(buffer)) > 0) {
md5.update(buffer, 0, bytesRead);
}
} catch (IOException e) {
e.printStackTrace();
}
byte[] md5ChkSumBytes = md5.digest();
StringBuffer sb = new StringBuffer();
/*Convert to hex*/
for (int j = 0; j < md5ChkSumBytes.length; j++)
{
String hex = Integer.toHexString(
(md5ChkSumBytes[j] & 0xff | 0x100)).substring(1, 3);
sb.append(hex);
}
md5ChkSumHex = sb.toString();
} catch (Exception nsae) {
}
return md5ChkSumHex;
于 2016-02-25T08:09:01.857 回答
0
有很多算法可以找到哈希。其中 MD5 和 SHA1 是比较流行的算法。
在上面的帖子中,他提到了 MD5 Hasing 的用法。要进行 SHA1 处理,请使用这篇文章。
于 2016-02-25T08:37:03.733 回答