Отличаются ли реализации Java CRC32 на 32-битных и 64-битных - PullRequest
1 голос
/ 29 мая 2011

Есть ли разница между реализациями Java CRC32 в 32-битных и 64-битных JVM?Моя проблема в том, что мое клиентское приложение (на 32-битной платформе) вычисляет хэш и сравнивает его с хешем, который был рассчитан 64-битным серверным приложением.Иногда (не всегда) я получаю разные результаты.

Кто-нибудь знает, в чем может быть проблема?

Заранее спасибо!

1 Ответ

2 голосов
/ 29 мая 2011

Вы имеете в виду CRC32 класс?

Нет, CRC-32 - это фиксированный алгоритм , и версия JVM, и тип процессора не должны на него влиять. Фактически, CRC-32 используется, например, в Ethernet, который не зависит от архитектуры.

Если вам известны данные, которые свидетельствуют о несоответствии CRC-32, сравните их с каким-либо произвольным калькулятором CRC, например this one. Очевидно, что на стороне сервера или на стороне клиента вычисления выполняются неправильно.

Я предполагаю, что с какой-то стороны обрабатывается не весь поток / файл (предположительно, несколько байтов в конце файла).

...