使用 crc32 查找文件是否受到损坏或损坏

使用 crc32 查找文件是否受到损坏或损坏

我有一个包含内容的目录。为了确保复制时不会丢失任何内容,我压缩了目录,现在我有了一个dir.tar.gz文件。

复制还是很麻烦,文件被损坏了,所以我想知道是否是由于压缩或复制文件造成的,所以我生成了一个crc32压缩文件。

我无法生成crc32该目录的原始内容,这意味着我无法使用crc32它。是否可以?

另外,如果我设法比较这两个数字,如果它们相同,则意味着文件没有受到损害?

答案1

根据您希望校验和的“严格”程度,典型的 Linux 安装至少提供三个选项:

  1. sum- 这是一个快速而简单的校验和。它不是加密安全的,因此可能会被故意篡改,但它应该能够很好地处理文件复制错误。

  2. md5sum(有时只是md5)。这会计算文件的基于 MD5 的校验和。这比慢sum但更有弹性。 MD5算法已经被破解,但这并不容易。

  3. sha1sum这将计算 SHA1 校验和;甚至更慢,但抗篡改能力最强。

  4. crc32这可能并不存在于所有系统上;这是一个 Perl 程序。

在你的用例中我可能会坚持使用sum.

通过计算传输前和传输后的校验tar.gz和,您可以合理地保证传输良好(sum并且crc32是最弱的,但足够好)。

还有另一种可能性......既然您正在压缩数据,那么您可以尝试在另一端使用gzip -dc file.tar.gz > /dev/null.如果生成错误,则文件已损坏,否则没有问题。根据文件的大小,这可能会更容易,因为它不需要传输第二个文件。不过,它可能不适合您的用例。

相关内容