【发布时间】:2012-11-14 17:57:56
【问题描述】:
我得到的结果是相同类型的文件返回相同的 md5 哈希值。例如,两个不同的 jpg 给了我相同的结果。但是,jpg 和 apk 会给出不同的结果。
这是我的代码...
public static String checkHashURL(String input) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
InputStream is = new URL(input).openStream();
try {
is = new DigestInputStream(is, md);
int b;
while ((b = is.read()) > 0) {
;
}
} finally {
is.close();
}
byte[] digest = md.digest();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < digest.length; i++) {
sb.append(
Integer.toString((digest[i] & 0xff) + 0x100, 16).substring(
1));
}
return sb.toString();
} catch (Exception ex) {
throw new RuntimeException(ex);
}
}
【问题讨论】:
-
您确定要散列 jpg 文件而不是 404 错误与 DNS 未找到错误吗?
-
我的猜测是只有文件数据的标题标签被读取和散列,因此导致相似类型的文件看起来相等。我建议调试正在读取的数据。