2016-10-03 10 views
0

PHPでCRC-CCITT(XModem)チェックを成功させようとしています。誰もそれを行う方法を知っていますか?私はcrc16( 'test')が0x9B06を返すと予想しました。ここでphp計算済みCRC-CCITT(XModem)

+0

これはまっすぐに見えるhttp://stackoverflow.com/questions/1834541/crc-4-implementation-in-c-sharpそれはC#ですが、PHPのために採用するのが簡単であるように見えます –

+0

これは実装のXModexアルゴリズムではありません。 –

答えて

0

は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に変換することができます。

関連する問題