CRC32b - есть ли где-нибудь спецификация?

Мне нужно использовать версию CRC32b в исходном коде (.NET и C#), но ее нигде нет. Кто-нибудь знает, где спецификация для CRC32b или какой-то псевдокод? Спасибо


person Antun Tun    schedule 05.07.2013    source источник
comment
У меня нет ответа, кроме этого связанного SO-вопроса может привести к тому, что вы ищете.   -  person Blastfurnace    schedule 05.07.2013


Ответы (2)


Я понятия не имею, откуда взялась буква «b», но я видел, что CRC32b относится к обычному CRC-32, используемому PKZip, gzip и т. д. и как определено в ITU-T V.42. Вы можете найти описание этого CRC и многих других здесь< /а>.

person Mark Adler    schedule 05.07.2013
comment
Спасибо, посмотрю документацию - person Antun Tun; 07.07.2013

Я сделаю немного лучше, чем просто псевдокод...

Ссылка ниже ведет на утилиту командной строки в macOS, которая самостоятельно вычисляет CRC32B (без использования системных библиотек). По замыслу функцию CRC32B() можно извлечь и использовать во встроенных системах кода, или эту утилиту командной строки можно перекомпилировать на Raspberry PI с модами #include.

(предварительно скомпилированный инструмент для macOS и проект Xcode с исходным кодом) `https://cerniuk.org/wiki/pages/S5Z134W8a/CRC32B_Any_Text.html

и если вы хотите проверить мой алгоритм, вот отличный веб-сайт для вычисления всевозможных контрольных сумм и хэшей: https://md5calc.com/hash/crc32b/cerniuk

crc32b — это 32-битная последовательность проверки кадров стандарта ITU V.42, используемая драйверами Ethernet для проверки передачи кадров, поэтому предполагается, что она является быстрой. Это также полезно для других вещей, таких как PKZip или реализация ваших собственных операторов switch() на C, которые эффективно переключают строки char *, записи struct{}, блоки данных void * и т. д. ;-)

person Cerniuk    schedule 18.12.2020