Java CRC32 实现在 32 位和 64 位上是否有所不同
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您的意思是 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).