Calculo CRC 16 X25 em PHP - PullRequest
       56

Calculo CRC 16 X25 em PHP

0 голосов
/ 14 марта 2019

Я пытаюсь выяснить контрольную сумму для определенных сообщений, но я не могу даже получить файлы GitHub по этой ссылке https://github.com/meetanthony/crcphp. На сайте ссылка выше работает, но когда я запускаю тест, никто не смог запустить calc для CRC16 X25?

Португальский ниже был переведен на английский выше:

Ола, amigos, estou comumm Problema, estou tentando descobrir о контрольной сумме детерминантных mensagens, mas não estou последовательно-mesmo com os arquivos do github deste link https://github.com/meetanthony/crcphp. Ни один сайт не может ссылаться на acima funciona, mas qunado executeto um teste não, alguém consguiu fazer funcionar o calulo para CRC16 X25?

1 Ответ

0 голосов
/ 08 апреля 2019

Я обнаружил, почему я ошибся с моим кодом, я передавал число в шестнадцатеричном формате и для вычисления мне нужно было преобразовать из шестнадцатеричного в десятичное, следовать функции с адаптацией (hexdec ($ d) решил мою проблему):

public function ComputeCrc($crcParams, $data) {
    if ($crcParams->RefIn) {
        $crc = $crcParams->InvertedInit;
    } else {
        $crc = $crcParams->Init;
    }
    if ($crcParams->RefOut) {
        foreach ($data as $d) {
            $d = hexdec($d);
            echo "<br>".$d."<br>";
            $crc = $crcParams->Array[($d ^ $crc) & 0xFF] ^ ($crc >> 8 & 0xFF);
        }
    } else {
        foreach ($data as $d) {
            $crc = $crcParams->Array[(($crc >> 8) ^ $d) & 0xFF] ^ ($crc << 8);
        }
    }

    $crc = $crc ^ $crcParams->XorOut;

    $result = new CrcResult();
    $result->Crc = $crc & 0xFFFF;

    return $result;
}
...