Есть много алгоритмов CRC32. Вы можете найти десять различных CRC-32, задокументированных в this catalog. Код Lua, который вы нашли, и онлайн-CRC32, который вы нашли (где-то - никакая ссылка не была предоставлена), являются разными CRC-32.
Что вы подразумеваете под «эквивалентом строк», является шестнадцатеричным представлением 32-разрядного целого числа. В Lua вы можете использовать string.format
с форматом печати %x
, чтобы получить шестнадцатеричный. Для примера, который вы дали, 1850105976
, это будет 6e466078
.
Ваш «онлайн-генератор CRC32», по-видимому, использует BZIP2 CRC-32, хотя он показывает вам байты результирующего CRC в обратном порядке (little-endian). Таким образом, фактический CRC в этом случае в шестнадцатеричном виде равен 91b99f87
. Вы нашли код Lua, который использует MPEG-2 CRC-32. Единственная разница между ними - эксклюзивная или с ffffffff
. Так что на самом деле эксклюзивные или из двух CRC, которые вы получили из двух разных источников, 6e466078^91b99f87
- ffffffff
.
Должно быть '09DA31FB' –
Существует по крайней мере [9 различных сумм CRC32] (http://www.sunshine2k.de/coding/javascript/crc/crc_js.html) –
Я вижу, но это на самом деле ответьте на мой вопрос – user1826176