我正在寻找一种算法,它知道如何组合2个校验和。
具体来说,我需要这样的内容:Combine(CheckSum(FirstHalf(File)), CheckSum(SecondHalf(File))) = CheckSum(File)
编辑:算法识别应用程序顺序很重要。更正式地说:Combine(CheckSum(FirstHalf(File)), CheckSum(SecondHalf(File))) != Combine(CheckSum(SecondHalf(File)), CheckSum(FirstHalf(File)))
答案 0 :(得分:0)
最简单的校验和算法只是对文件的字节进行求和,因此就是名称。
因此,文件两半的校验和可以简单地加在一起,等于整个文件的校验和。
答案 1 :(得分:0)
普通旧CRC可以在知道第二块的长度时执行此操作,如here所述。有efficient implementation in zlib。