【发布时间】:2019-05-14 14:06:09
【问题描述】:
我正在使用 7zip CHA32 工具来验证我的校验和 32 算法。当且仅当数据缓冲区的大小是 4 的倍数时,该算法才会给出正确的值。如果缓冲区的大小不同,如果我在缓冲区中填充一个额外的“00”字节,该算法会给出正确的校验和。是否有任何通用 C++ 算法可以在没有数据大小限制的情况下工作?谢谢
【问题讨论】:
-
添加额外填充是否有任何问题(对于 CRC32 算法,通常最多 3 个字节)。使用余数运算符确定填充字节的数量。
-
我有一个额外的 3 个字节的模数(大小是恒定的),我填充了一个额外的字节。当我尝试使用 7Zip CHA 32 验证计算的校验和时出现问题,我得到不同的值,有和没有填充字节。
-
为了与我的验证程序保持一致,我正在尝试使用 7zip CHA 32 算法调整我的算法!
-
您可能想要使用不同的工具来验证您的 CRC32 实现。查看 NIST 网站,请参阅 NIST CRC32 或 nist.gov
-
什么是 7zip cha32? Google 不提供任何相关结果。它与CRC32有什么关系? CRC 算法本身不需要填充。