Мне нужно использовать версию CRC32b в исходном коде (.NET и C#), но ее нигде нет. Кто-нибудь знает, где спецификация для CRC32b или какой-то псевдокод? Спасибо
CRC32b - есть ли где-нибудь спецификация?
Ответы (2)
Я понятия не имею, откуда взялась буква «b», но я видел, что CRC32b относится к обычному CRC-32, используемому PKZip, gzip и т. д. и как определено в ITU-T V.42. Вы можете найти описание этого CRC и многих других здесь< /а>.
Я сделаю немного лучше, чем просто псевдокод...
Ссылка ниже ведет на утилиту командной строки в 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 *
и т. д. ;-)