我需要在多台机器之间同步一些文件,然后将它们与我的应用程序一起使用。我可能遇到的问题是文件尚未完全交付。为了解决这个问题,我想用 CRC-32C 算法对每个文件进行校验和。
在这里我有一个问题。 我如何为每个文件自己提供校验和 ?我有一个数据库可以告诉我何时尝试读取文件,因此首先将哈希写入数据库然后才使用我的应用程序计算交付文件的哈希是完全安全的。但就是感觉不对。什么是标准?同步文件时,您通常如何对文件执行校验和?
最佳答案
将 CRC 附加到文件中。然后,当您收到 n 个字节时,计算前 n-4 个字节的 CRC,并将其与最后四个字节进行比较。如果匹配,则很有可能在传输中没有错误或遗漏。然后删除最后四个字节。
为了进一步保证,您还可以将文件的长度附加到文件中,比如八个字节,并检查它。
(顺便说一句,CRC 不是校验和。它是 CRC。)
关于c++ - CRC-32C 传输文件的校验和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69177572/