我在互联网上找到了这个CRC32实现,稍微改变了一下,但我无法让它工作.我初始化它并在我从输入获得的每个字节上更新它,但我得到的哈希不是它应该是什么...
typedef struct {
unsigned short xor;
} xor_context;
void crc32_init(crc32_context *context) {
context->crc = 0xFFFFFFFF;
}
void crc32_update(crc32_context *context, unsigned char byte) {
uint32_t crc, mask;
crc = context->crc;
crc = crc ^ byte;
for (int j = 7; j >= 0; j--) { // Do eight times.
mask = -(crc & 1);
crc = (crc >> 1) ^ (0xEDB88320 & mask);
}
context->crc = ~crc;
}
Run Code Online (Sandbox Code Playgroud)
这个是原创的
unsigned int crc32b(unsigned char *message) {
int i, j;
unsigned int …Run Code Online (Sandbox Code Playgroud)