我正在尝试实现一个CRC-CCITT (XModem)签入php,但没有成功。有人知道怎么做吗?我预期crc16('test')会返回0x9B06。
发布于 2016-10-04 01:36:58
以下是XMODEM 16位CRC的简单位级计算,用C表示:
#include <stdint.h>
unsigned crc16xmodem_bit(unsigned crc, void const *data, size_t len) {
if (data == NULL)
return 0;
while (len--) {
crc ^= (unsigned)(*(unsigned char const *)data++) << 8;
for (unsigned k = 0; k < 8; k++)
crc = crc & 0x8000 ? (crc << 1) ^ 0x1021 : crc << 1;
}
crc &= 0xffff;
return crc;
}这是由我的克拉卡尼软件生成的,它也为速度生成字节和字的版本.
这可以很容易地转换为php。
https://stackoverflow.com/questions/39839170
复制相似问题