Java兼容的校验和函数

Java兼容的校验和函数,java,checksum,crc,crc32,Java,Checksum,Crc,Crc32,Java中是否有任何库/代码以与unix中的cksum命令一致的方式计算字节流的32位CRC?您是否尝试过CRC32类 这是gzip使用的crc 32。Jacksum: 它是开源的。Carlos Rendon的声明“我可以验证Java的CRC32与/usr/bin/cksum不同”,这是不正确的 正如Peter Lawrey提到的,您可以直接使用Java的CRC32获得与Unix/Linux相同的校验和cksum 正确的方法是: java.util.zip.CRC32 x = new java

Java中是否有任何库/代码以与unix中的cksum命令一致的方式计算字节流的32位CRC?

您是否尝试过CRC32类

这是gzip使用的crc 32。

Jacksum:


它是开源的。

Carlos Rendon的声明“我可以验证Java的CRC32与/usr/bin/cksum不同”,这是不正确的

正如Peter Lawrey提到的,您可以直接使用Java的CRC32获得与Unix/Linux相同的校验和
cksum

正确的方法是:

java.util.zip.CRC32 x = new java.util.zip.CRC32();
x.update(bytes);
StdOut.println("CRC32 (via Java's library)     = " + Long.toHexString(x.getValue()));
资料来源:

使用的默认CRC基于网络标准中用于CRC错误检查的多项式 ISO/IEC 8802-3:1989


对我来说非常好。谢谢你的快速回复@PalacInt:我的java程序中是否有可以使用的代码/算法,因为我不想要任何第三方实用程序。事实上,jonelo.jacksum.algorithm.Cksum与java的CRC32类有相同的接口,但给出的结果与unix Cksum相同。我在网上的几个地方读到unix Cksum的crc-32算法与gzip的不同。我没有测试过这一点,但很可能是真的。使用“Jacksum”(见上文)对我来说很好。@Kowshik,我可以验证Java的CRC32与/usr/bin不同/cksum@Kowshik,请检查我的答案。它肯定会为我返回不同的结果。事实上,我的机器(Mac)既有
/usr/bin/cksum
又有
/usr/bin/crc32
cksum也在这个Mac上,
cksum-o3默认算法不是32位的。阅读cksum手册页了解更多信息details@HithamS.AlQadheeb这是不正确的。个人测试和对cksum维基页面的审查都表明,它与CRC-32不兼容。cksum的手册页没有说明算法和/或它需要多少位。@HithamS.AlQadheeb我也请您阅读更多内容。和。
java.util.zip.CRC32 x = new java.util.zip.CRC32();
x.update(bytes);
StdOut.println("CRC32 (via Java's library)     = " + Long.toHexString(x.getValue()));