0
我試圖在PHP中實現CRC-CCITT(XModem)檢查沒有成功。有誰知道該怎麼做?我預計crc16('測試')將返回0x9B06
。php計算CRC-CCITT(XModem)
我試圖在PHP中實現CRC-CCITT(XModem)檢查沒有成功。有誰知道該怎麼做?我預計crc16('測試')將返回0x9B06
。php計算CRC-CCITT(XModem)
這裏是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;
}
這是我crcany軟件,這也產生字節和字爲單位的版本產生速度。
這可以很容易地轉換爲PHP。
這看起來很直觀http://stackoverflow.com/questions/1834541/crc-4-implementation-in-c-sharp它的C#,但看起來應該很容易採用PHP –
這不是實現XModex算法。 –