Java CRC32 实现在 32 位和 64 位上是否有所不同

发布于 2024-11-10 18:29:57 字数 156 浏览 3 评论 0原文

32 位和 64 位 JVM 上的 Java CRC32 实现有什么区别吗? 我的问题是,我的客户端应用程序(在 32 位平台上)计算哈希并将其与 64 位服务器应用程序计算的哈希进行比较。 有时(并非总是)我会得到不同的结果。

有谁知道问题可能是什么?

提前致谢!

Is there any difference between the Java CRC32 implementations on 32Bit and 64Bit JVMs?
My problem is, that my client application (on a 32Bit platform) calculates a hash and compares it against a hash that was calculated by a 64Bit server application.
Sometimes (not always) I get different results.

Does anyone know what the problem could be?

Thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

天煞孤星 2024-11-17 18:29:57

您的意思是 CRC32 类?

不,CRC-32 是一个固定的算法,并且 JVM 版本和 CPU 类型不应该有任何对其产生影响。事实上,CRC-32 用于与架构无关的以太网中。

如果您知道显示 CRC-32 不匹配的数据,请使用任意 CRC 计算器对其进行检查,例如 this< /a> 一。显然,服务器端或客户端的计算错误。

我的猜测是,在某些方面,并未处理整个流/文件(可能是文件末尾的几个字节)。

You mean CRC32 class?

No, CRC-32 is a fixed algorithm and both JVM version and CPU type shouldn't have any affect on it. In fact, CRC-32 is used for instance in Ethernet which is architecture agnostic.

If you know the data that manifests mismatched CRC-32, check it against some arbitrary CRC calculator, like this one. Clearly either server- or client-side is doing the computation wrong.

My guess is that on some side not the whole stream/file is processed (few bytes at the end of file presumably).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文