zip—将.txt文件中的每一行与java中的数组字符串进行比较

von4xj4u  于 2021-07-08  发布在  Java
关注(0)|答案(1)|浏览(419)
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文件中的文件。

kiayqfof

kiayqfof1#

我是否有其他解决方案来检查从其他电脑移到另一台电脑后zip文件中的文件。
一般来说,我们使用哈希校验和来检查文件的完整性—它们效率更高,而且几乎同样可靠。例子:

MessageDigest digest = MessageDigest.getInstance("SHA-256");
byte[] hash = digest.digest(data);

此代码从输入字节[](数据)生成一个小字节[]。为了检查zip文件,只需从原始zip创建一个散列,并检查复制的zip的散列是否相同。您可以使用arrays.equals()方法,也可以将字节数组转换为base64字符串,以提高可读性。
有趣的事实:两个256位哈希匹配的机会大致相当于在第一次尝试中正确猜出一个49个字符长的字母数字密码。

相关问题