0
PHPでCRC-CCITT(XModem)チェックを成功させようとしています。誰もそれを行う方法を知っていますか?私はcrc16( 'test')が0x9B06
を返すと予想しました。ここでphp計算済みCRC-CCITT(XModem)
PHPでCRC-CCITT(XModem)チェックを成功させようとしています。誰もそれを行う方法を知っていますか?私はcrc16( 'test')が0x9B06
を返すと予想しました。ここでphp計算済みCRC-CCITT(XModem)
はCで、XMODEM 16ビットのCRCの単純なビット単位の演算です:
#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アルゴリズムではありません。 –