Есть много алгоритмов CRC-32. Вы можете найти десять различных CRC-32, задокументированных в этом каталоге. Код Lua, который вы нашли, и онлайн-код CRC32, который вы нашли (где-то - ссылка не была предоставлена), - это разные CRC-32.
Под «строковым эквивалентом» вы, кажется, подразумеваете шестнадцатеричное представление 32-битного целого числа. В Lua вы можете использовать string.format
с форматом печати %x
для получения шестнадцатеричного числа. В приведенном вами примере 1850105976
это будет 6e466078
.
Ваш «онлайн-генератор CRC32», похоже, использует BZIP2 CRC-32, хотя он показывает вам байты результирующего CRC в обратном порядке (с прямым порядком байтов). Таким образом, фактическая CRC в этом случае в шестнадцатеричном формате равна 91b99f87
. Код Lua, который вы нашли, похоже, использует MPEG-2 CRC-32. Единственная разница между ними - эксклюзивное или с ffffffff
. Так что фактически исключающее ИЛИ из двух CRC, полученных из двух разных источников, 6e466078 ^ 91b99f87
равно ffffffff
.
person
Mark Adler
schedule
20.11.2016
09DA31FB
- person Egor Skriptunoff   schedule 20.11.2016