小编Mat*_*ver的帖子

crc32_combine() 的矩阵技巧的逆是什么?

zlib 的 crc32_combine() 使用 crcA、crcB 和 lengthB 来计算 crcAB。

# returns crcAB
crc32_combine(crcA, crcB, lenB)
Run Code Online (Sandbox Code Playgroud)

使用 Mark Adler在这里这里的精彩帖子中的概念,我能够生成crc32_trim_trailing.pl,它采用 crcAB、crcB 和 lengthB 来计算 crcA(我用它来剥离已知长度和值的填充)。

# prints crcA
perl crc32_trim_trailing.pl $crcAB $crcB $lenB
Run Code Online (Sandbox Code Playgroud)

不幸的是,这使用了所描述的慢速方法的原则,其中每个空字节必须一次剥离一个。它很慢,但很好地证明了概念。

我一直在努力制作 crc32_trim_trailing 的快速版本,它利用 Mark 的帖子中描述的矩阵技巧,并为 zlib 的 crc32_combine() 中的组合用例实现。

这是我在 crc32_trim_trailing.c 上的尝试。

/* crc32_trim_trailing.c
  This code is borrows heavily from crc32.c from zlib version 1.2.8, but has
  been altered.
*/

#include <stdio.h>

#define GF2_DIM 32      /* dimension of GF(2) vectors (length of …
Run Code Online (Sandbox Code Playgroud)

checksum zlib crc matrix

5
推荐指数
1
解决办法
570
查看次数

标签 统计

checksum ×1

crc ×1

matrix ×1

zlib ×1