public static boolean checkChecksum(String filePath, String checksumPath) throws Exception{
File file = new File(filePath);
File checksum1 = new File(checksumPath);
try {
ZipFile zipFile = new ZipFile(file);
Enumeration e = zipFile.entries();
while(e.hasMoreElements()) {
ZipEntry entry = (ZipEntry)e.nextElement();
String entryName = entry.getName();
long crc = entry.getCrc();
String current_crc = crc+"";
}
zipFile.close();
return true;
}
catch (IOException ioe) {
log.debug("Zip file may be corrupted");
System.out.println("Error opening zip file" + ioe);
return false;
}
}
我想比较一下每一行 checksum1
文件到每个字符串值 current_crc
我从 file.zip
.
我怎么能做到?以及我是否有其他解决方案来检查从其他pc移动到另一台pc后zip文件中的文件。
1条答案
按热度按时间kiayqfof1#
我是否有其他解决方案来检查从其他电脑移到另一台电脑后zip文件中的文件。
一般来说,我们使用哈希校验和来检查文件的完整性—它们效率更高,而且几乎同样可靠。例子:
此代码从输入字节[](数据)生成一个小字节[]。为了检查zip文件,只需从原始zip创建一个散列,并检查复制的zip的散列是否相同。您可以使用arrays.equals()方法,也可以将字节数组转换为base64字符串,以提高可读性。
有趣的事实:两个256位哈希匹配的机会大致相当于在第一次尝试中正确猜出一个49个字符长的字母数字密码。